NumPy(1)-常用的初始化方法

NumPy,方法,初始化,常用 · 浏览次数 : 104

小编点评

**NumPy简介** NumPy 是一个 Python 库,用于数值计算。它提供了一套用于数组操作的通用接口,包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数、基本统计运算和随机模拟等。 **Ndarray简介** Ndarray 是 NumPy 的核心数据结构,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。ndarray 对象是用于存放同类型元素的多维数组。 **Ndarray和 Python 中列表的区别** * **C数组:**在 C 语言中,数组是一个连续的内存空间,并且数组中的数据的类型也是一致的。 * **Python 列表:**在 Python 中,列表里面存放的对象,可以是不同数据类型。其底层实现是通过类似C语言中的指针数组来实现的,即python 的列表中存放的数据的指针即他们的地址,然后再根据这个指针找到具体的数据。 **初始化 NumPy数组** * **`numpy.array()`** 函数用于创建新的 NumPy数组,它接受一个数据对象或一个列表作为参数。 * **`np.zeros()`** 和 **`np.ones()`** 函数用于分别填充数组的元素为 0 和 1。 * **`np.ful()`** 函数用于使用自己指定数字填充数组内容。 **其他功能** * **`numpy.linspace()`** 函数用于生成等差数列的数组。 * **`numpy.random.randint()`** 函数用于使用随机数创建NumPy数组。 **属性** NumPy数组有以下四个必记的属性: * **`ndim`:**维数 * **`shape`:**形状 * **`size`:**总长度 * **`dtype`:**元素类型

正文

一、NumPy介绍

  NumPy是Python中科学计算的基础包,它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。

  • 功能强大的N维数组对象。
  • 精密广播功能函数。
  • 集成 C/C+和Fortran 代码的工具。
  • 强大的线性代数、傅立叶变换和随机数功能。

二、Ndarray介绍

  NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。ndarray 对象是用于存放同类型元素的多维数组。ndarray 中的每个元素在内存中都有相同存储大小的区域。

三、Ndarray和python中的list列表的区别

  C数组:学过C语言的都知道,在C语言中数组是一个连续的内存空间,并且数组中的数据的类型也是一致的。

  python列表:python中的列表里面存放的对象,可以是不同的数据类型。其底层实现是通过类似C语言中的指针数组来实现,即python的列表中存放的数据的指针即他们的地址,然后再根据这个指针找到具体的数据。

  Ndarray数组:和C语言数组实现类似,也是一段连续的内存空间,里面存放的也是相同的数据类型。

  详细如下:

  • NumPy 数组在创建时具有固定的大小,与Python的原生数组对象(可以动态增长)不同。更改ndarray的大小将创建一个新数组并删除原来的数组。
  • NumPy 数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同。
  • NumPy 数组有助于对大量数据进行高级数学和其他类型的操作。通常,这些操作的执行效率更高,比使用Python原生数组的代码更少。

四、初始化NumPy数组

  1、安装 numpy 包

    pip3 install numpy

  2、导入 numpy 包

    import numpy

  3、使用一个列表初始化一个NumPy数组

    函数作用:初始化一个NumPy数组

    函数原型:numpy.array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0)

    参数示例:

      * object: 必填参数:即创建NumPy数组的数据对象

      * dtype: 可选参数,通过它可以更改数组的数据类型---可将原来的整型或者其他类型进行强制转换

      * copy: 可选参数,当数据源是ndarray 时表示数组能否被复制,默认是True

      * order: 可选参数,以哪种内存布局创建数组,有3个可选值,分别是C(行序列)/F(列序列)/A(默认)

      * ndmin: 可选参数,用于指定数组的维度--例如 一维数组、二维数组、三维数组等

      * subok: 可选参数,类型为bool值,默认为False。 为True,使用object的内部数据类型; 为False 使用object数组的数据类型

    代码示例:

    

     注意:

      * 其中np_array就是Ndarray类型。

      * data_list中的数据类型是不一致,但是转化成np_array后,数据格式一致了,都变成了字符串类型。

      * 如果传进来的列表包含不同的类型,则统一转化为同一类型,转化的优先级:str>float>int,即有str则都转化为str,这样才能保证NumPy数组中数组的一致性。

  4、numpy.ones()

    函数作用:创造出来的数组里面填充的都是1

    函数原型:numpy.ones(shape, dtype=None, order='C', *, like=None)

    参数解释:

      * shape:创建出来数组的形状,是一维数组,还是二维数组,还是多维数组等等

      * dtype:数据的类型

      * order:指定内存重以行优先(‘C’)还是列优先(‘F’)顺序存储多维数组。

    代码示例:

    

     注意:

      shape = (m,n) m行n列, 二维数组

      shape = (m)  m个元素的一维数组 [1,2,3]

      shape = (m, ) m个元素的一维数组

      shape = (m, 1) m行1列 二维数组 [[1],[2],[3]]

      shape = (1,m) 1行m列 二维数组 [[1,2,3]]

   5、numpy.zeros()

    函数作用:其用法和ones()一样,只不过被填充的由1变成了0

    函数原型:zeros(shape, dtype=float, order='C', *, like=None)
 
            代码示例:
    

   6、numpy.ful()

    函数作用:使用自己指定数字填充数组内容

    函数原型:numpy.full(shape, fill_value, dtype=None, order='C', *, like=None)

     代码示例:

    

  7、numpy.linspace()

    函数作用: 生成等差数列的数组

    函数原型:linspace(start, stop, num=50,endpoint=True,retstep=False,dtype=None)

    参数解释:

      * start,起始点
      * stop,结束点
      * num,元素个数,默认 50
      * endpoint,是否包含 stop 数值,默认为 True,包含 stop 值;若为 False,则不包含 stop 值
      * retstep,返回值形式,默认为 False,返回等差数列组,若为True,则返回结果 (array([‘samples’, ‘step’]))
      * dtype,返回结果的数据类型,默认无,若无,则参考输入数据类型
    

    代码示例:

    

  

  8、numpy.arange()

    函数作用:根据步长生成等差数列

    函数原型:arange([start,] stop[, step,], dtype=None, *, like=None)

    代码示例:

    

  9、numpy.random.randint()

    函数作用:使用随机数创建NumPy数组

    函数原型:randint(low, high=None, size=None, dtype=int)

    参数示例:

      * low:随机数的最小值

      * higt:随机数的最大值

      * size:生出数组的形状

      * dtype:数据类型

    代码示例:

    

     注意:类似的函数还有下面几个,用法也类似

      * numpy.random.random(size): 随机生成小数的NumPy的数组

      * numpy.random.randn(d0, d1, ..., dn): 标准正态分布

      * np.random.normal(): 普通正态分布

 五、ndarray的属性

  通过上面的示例,我们看到有几个属性是ndarray常用的属性,这里我们总结如下:

  四个必记的属性

    * ndim: 维度

    * shape: 形状

    * size: 总长度

    * dtype: 元素类型

  代码示例:

    

 

 

与NumPy(1)-常用的初始化方法相似的内容:

NumPy(1)-常用的初始化方法

一、NumPy介绍 NumPy是Python中科学计算的基础包,它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。 功能强大的N维数

NumPy 数组创建方法与索引访问详解

NumPy 创建数组 NumPy 中的核心数据结构是 ndarray,它代表多维数组。NumPy 提供了多种方法来创建 ndarray 对象,包括: 使用 array() 函数 array() 函数是最常用的方法之一,它可以将 Python 列表、元组甚至其他数组转换为 ndarray 对象。 语法

【numpy基础】--基础操作

`numpy`作为一个强大的数值计算库,提供了对多维数组的很多便捷操作。 承接上一篇数组的创建,本篇主要介绍一些数组的基本操作。 # 1. 子数组 首先介绍获取子数组的方法,提取已有数据的一部分来参与计算是比较常用的功能。 对于一维数组,提取子数组:`arr[start:stop:step]` 1.

NumPy 二项分布生成与 Seaborn 可视化技巧

二项分布是描述固定次数独立试验中成功次数的概率分布,常用于分析二元结果的事件,如抛硬币。分布由参数 n(试验次数)、p(单次成功概率)和 k(成功次数)定义。概率质量函数 P(k) = C(n, k) * p^k * (1 - p)^(n - k)。NumPy 的 `random.binomial(...

NumPy 均匀分布模拟及 Seaborn 可视化教程

本文介绍了均匀分布和逻辑分布。均匀分布是连续概率分布,所有事件在指定范围内有相等概率发生,常用于随机数生成。其概率密度函数为 `f(x) = 1/(b-a)`,其中 a 和 b 分别为下限和上限。NumPy 的 `random.uniform()` 可生成均匀分布的随机数。Seaborn 可用于可视...

【numpy基础】--数组排序

`numpy` 数组通常是用于数值计算的多维数组,而排序功能可以快速、准确地对数据进行排序,从而得到更加清晰、易于分析的结果。 在数据分析和处理过程中,常常需要对数据进行排序,以便更好地理解和发现其中的规律和趋势。 排序会应用在很多场景中,比如: 1. 数据分类:将数据按照一定的特征进行分类,可以通

module 'numpy' has no attribute 'int'.

原因:np.int 在 NumPy 1.20 中已弃用,在 NumPy 1.24 中已删除 AttributeError: module 'numpy' has no attribute 'int'. `np.int` was a deprecated alias for the builtin `

NumPy 差分、最小公倍数、最大公约数、三角函数详解

NumPy 助你处理数学问题:计算序列的差分用`np.diff()`,示例返回`[5, 10, -20]`;找最小公倍数(LCM)用`np.lcm()`,数组示例返回`18`;最大公约数(GCD)用`np.gcd.reduce()`,数组示例返回`4`;三角函数如`np.sin()`,`np.deg...

NumPy 舍入小数、对数、求和和乘积运算详解

NumPy 提供五种舍入小数的方法:`trunc()`, `fix()`, `around()`, `floor()`, `ceil()`。此外,它还支持对数运算,如 `log2()`, `log10()`, `log()`,以及自定义底数的对数。NumPy 的 `sum()` 和 `prod()`...

NumPy 简单算术:加减乘除及其他运算

NumPy 中的简单算术运算可以通过 `add`, `subtract`, `multiply`, `divide`, `power`, `mod`, `remainder` 等函数实现,这些函数支持条件运算,并接受 `where` 参数。例如,`add()` 实现加法,`subtract()` 表...