NumPy是Python中科学计算的基础包,它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。
NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。ndarray 对象是用于存放同类型元素的多维数组。ndarray 中的每个元素在内存中都有相同存储大小的区域。
C数组:学过C语言的都知道,在C语言中数组是一个连续的内存空间,并且数组中的数据的类型也是一致的。
python列表:python中的列表里面存放的对象,可以是不同的数据类型。其底层实现是通过类似C语言中的指针数组来实现,即python的列表中存放的数据的指针即他们的地址,然后再根据这个指针找到具体的数据。
Ndarray数组:和C语言数组实现类似,也是一段连续的内存空间,里面存放的也是相同的数据类型。
详细如下:
pip3 install numpy
import 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数组中数组的一致性。
函数作用:创造出来的数组里面填充的都是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]]
函数作用:其用法和ones()一样,只不过被填充的由1变成了0
函数作用:使用自己指定数字填充数组内容
函数原型:numpy.full(shape, fill_value, dtype=None, order='C', *, like=None)
代码示例:
函数作用: 生成等差数列的数组
函数原型: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,返回结果的数据类型,默认无,若无,则参考输入数据类型
代码示例:
函数作用:根据步长生成等差数列
函数原型:arange([start,] stop[, step,], dtype=None, *, like=None)
代码示例:
函数作用:使用随机数创建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常用的属性,这里我们总结如下:
四个必记的属性
* ndim: 维度
* shape: 形状
* size: 总长度
* dtype: 元素类型
代码示例: