一、什么是NumPy
- NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库;
- NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:
- 一个强大的N维数组对象 ndarray
- 广播功能函数
- 线性代数、傅里叶变换、随机数生成等功能
二、NumPy Ndarray对象
- NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合
- 以 0 下标为开始进行集合中元素的索引
- 创建一个 ndarray 只需调用 NumPy 的 array 函数即可
1 import numpy as np 2 a = np.array([1,2,3]) 3 b = np.array([[1, 2], [3, 4]])
三、NumPy数据类型
四、NumPy 数组属性
- NumPy 数组的维数称为秩,即数组的维度,一维数组的秩为 1,二维数组的秩为 2,以此类推;
- 在 NumPy中,每一个线性的数组称为是一个轴(axis),轴的数量--秩,就是数组的维数;
- 我们可以声明axis:axis=0,表示沿着第 0 轴进行操作,即对每一列进行操作;axis=1,表示沿着第1轴进行操作,即对每一行进行操作
- ndarray.shape 表示数组的维度,返回一个元组
1 import numpy as np 2 a = np.array([[1,2,3],[4,5,6]]) 3 print (a.shape)
- ndarray.shape 也可以用于调整数组大小
1 import numpy as np 2 a = np.array([[1,2,3],[4,5,6]]) 3 a.shape = (3,2) 4 print (a)
- NumPy 也提供了 reshape 函数来调整数组大小
1 import numpy as np 2 a = np.array([[1,2,3],[4,5,6]]) 3 b = a.reshape(3,2) 4 print (b)
五、NumPy 创建数组
1、特殊数组的创建
-
numpy.empty:用于创建指定形状、数据类型且未初始化的数组
【说明】由于未对数据进行初始化操作,因此数组使用该方法创建出的数组元素为随机值
1 import numpy as np 2 x = np.empty([3,2], dtype = int)
-
numpy.zeros:用于创建指定形状的数组,且数组中的元素使用0来填充
import numpy as np # 默认为浮点数 x = np.zeros(5) print(x) # 设置类型为整数 y = np.zeros((5,), dtype = np.int) print(y)
-
numpy.ones:用于创建指定形状的数组,且数组中的元素使用1来填充
1 import numpy as np 2 3 # 默认为浮点数 4 x = np.ones(5) 5 print(x) 6 7 # 自定义类型 8 x = np.ones([2,2], dtype = int) 9 print(x)
2、从已有的数组中创建数组--numpy.asarray
- 将列表转换为 ndarray
1 import numpy as np 2 3 x = [1,2,3] 4 a = np.asarray(x) 5 print (a)
输出结果:[1 2 3]
- 将元组转换为 ndarray
1 import numpy as np 2 3 x = (1,2,3) 4 a = np.asarray(x) 5 print (a)
输出结果:[1 2 3]
- 将元组列表转换为 ndarray
1 import numpy as np 2 3 x = [(1,2,3),(4,5)] 4 a = np.asarray(x) 5 print (a)
输出结果:[(1,2,3) (4,5)]
- 设置了 dtype 参数
1 import numpy as np 2 3 x = [1,2,3] 4 a = np.asarray(x, dtype = float) 5 print (a)
3、从数组范围创建数组
-
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
参数 | 描述 |
---|---|
start |
序列的起始值 |
stop |
序列的终止值,如果endpoint 为true ,该值包含于数列中 |
num |
要生成的等步长的样本数量,默认为50 |
endpoint |
该值为 true 时,数列中包含stop 值,反之不包含,默认是True。 |
retstep |
如果为 True 时,生成的数组中会显示间距,反之不显示。 |
dtype |
ndarray 的数据类型 |
-
numpy.arange(start, stop, step, dtype)
1 import numpy as np 2 3 x = np.arange(5) 4 print (x)
1 import numpy as np 2 a = np.linspace(1,10,10) 3 print(a)