目录:
介绍
numpy是’Numerical Python’的简称,numpy提供了一个高性能的多维数组对象ndarray(N Dimension Array),以及大量的库函数和操作。
维度
1)维度的写法
2)元素的索引
ndarray数据结构
1)元数据部分
存储当是当前ndarray对象当一些描述信息。比如shape\size\dtype\ndim
2)真实数据部分
存储的是当前这个ndarray对象中的真实数据
ndarray常用属性
ndim返回数组堆数
shape返回数组形状
dtype返回数组数据类型
size返回数组元素个数
itemsize返回数组每个元素占用空间大小(单位为字节)
nbytes返回数组所有元素占用空间大小(单位为字节)
ndarray与list的区别
- list列表可以存储不同数据类型,而ndarray数据存储的所有元素类型,都必须一致
- 使用numpy创建数组的效率比原生list要高的多
- 使用ndarray创建数组的好处
1)每个元素类型一致,那么整个ndarray只需要一个元数据信息即可,而不是像list一样,每个对象都需要存储一个元数据信息
2)由于元数据只需要存储一份,所以更节省空间
3)每个元素类型一致,说明每个元素占用内存大小是一致的,存储数据可以更紧凑,效率更高
列表与数组之间的相互转换
- 列表转成数组,直接对列表应用np.array函数即可
- 数组转列表:tolist()
创建数组的不同方式
1、用np.array()函数去创建数组
-
np.array(参数)函数,参数给了什么样式的数据,就构建什么样式的ndarray数组;你给我一个一维列表,我就构建一个一维数组;你给我一个二维列表,我就构建一个二维数组;
-
在numpy中,一维数组又叫做"向量";二维数组又叫做"矩阵";
2、利用np.arrange()函数去创建数组
对比range()函数
**相同点:**用法相同。都是(start,end,step)
不同点:np.arrnge()函数的步长可以是浮点数,但是range()函数的步长不能是浮点数
3、利用指定值生成指定形状的数组
-
np.zeros((x,y)):生成一个x行y列的,元素都是0的二维数组;
-
np.ones((x,y)):生成一个x行y列的,元素都是1的二维数组;
-
np.full((x,y),value):生成一个x行y列的,元素都是value的二维数组,其中这个value值可以是整数(正整数,0,负整数)或者小数;
Ps:传入一个数字,就可以创建一维数组;传入三个数字,就可以创建三维数组
4、按照已有的ndarray数组的形状,创建形状相同但指定元素的ndarray数组
先创建一个数组,再使用np.xx_like函数
常用的函数有:
-
np.zeros_like()
-
np.ones_like()
-
np.full_like()
5、创建单位矩阵和对角矩阵
1)单位矩阵
- np.eye()或np.identity()
2)对角矩阵
- np.diag()
6、创建等差数列数组
对比arrange()函数和linspace()函数学习
-
np.arange(start,stop,step)第三个参数指的是元素步长;固定步数,和首位数
-
np.linspace(start,stop,num)第三个参数指的是元素个数;固定首位数,个数。尾数可以不固定也可以固定
-
np.linspace()中两个常用的参数:endpoint和dtype。
- endpoint=True表示是包含终止值(默认),endpoint=False表示不包含终止值;
- dtype=np.float64指定创建的数组的数据类型默认是float64,你也可以设置为dtype=np.np.int32;
7、创建等比数列数组
注意:上述代码表示在2的一次方到2的七次方之间,生成4个数,这四个数字还构成了一个等比数列。
注意:上述代码表示会默认base=10,也就是说,在10的一次方到10的五次方之间,生成3个数,这3个数还构成一个等比数列。
8、通过自定义函数构建数组
(3,3)表示三行三列。第一行,第一列,坐标表示为(0,0),同理,第一行,第三列,坐标表示为(0,2)。
Numpy中的常数
- 正无穷:Inf = inf = infty = Infinity = PINF
- 负无穷:NINF
- 正零:PZERO
- 负零:NZERO
- 非数值:nan = NaN = NAN
- 自然数e:e
- π:pi
- 伽马:euler_gamma
- None:newaxis
Numpy中的数据类型与数据类型转化dtype、astype
1、numpy中常用的数据类型
1byte=4bits 、 32bit=4 bytes、 64bit=8bytes、int32、 float64