Numpy 库是 Python 中科学计算的核心库。它提供了高性能的多维数组对象以及用于处理这些数组的工具。
使用以下约定导入 Numpy
import numpy as npNumpy 数组
array([[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]])
# 创建一个数组 np.ones((2,3,4), dtype=np.int16)array([[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]],
[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]], dtype=int16) # 创建均匀间隔值的数组(步长值) d = np.arange(10,25,5) # 创建均匀间隔值的数组(样本数) np.linspace(0,2,9)array([0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])
# 创建常量数组 e = np.full((2,2),7) # 创建2X2单位矩阵 f = np.eye(2) # 创建具有随机值的数组 np.random.random((2,2))array([[0.64234353, 0.07179718], [0.7937333 , 0.13764298]])
# 创建一个空数组 np.empty((3,2))array([[0., 0.], [0., 0.], [0., 0.]])
array([1, 2, 3])
numpy.int64
# 标准双精度浮点复数 np.float32numpy.float32
# 由128浮点数表示的布尔类型 np.complexcomplex
# 存储TRUE和FALSE np.boolbool
# 值Python对象类型 np.objectobject
# 固定长度的字符串类型 np.string_numpy.bytes_
# 固定长度的unicode类型 np.unicode_numpy.str_
(3,)
# 数组长度 len(a)3
# 数组维数 b.ndim2
# 数组元素的数量 e.size4
# 数组元素的数据类型 b.dtypedtype(‘float64’)
# 数据类型的名称 b.dtype.name‘float64’
# 将数组转换为其他类型 b.astype(int)array([[1, 2, 3], [4, 5, 6]])
array([[-0.5, 0. , 0. ], [-3. , -3. , -3. ]])
# 减法 np.subtract(a,b)array([[-0.5, 0. , 0. ], [-3. , -3. , -3. ]])
# 加法 b + aarray([[2.5, 4. , 6. ], [5. , 7. , 9. ]])
# 加法 np.add(b,a)array([[2.5, 4. , 6. ], [5. , 7. , 9. ]])
# 乘法 a * barray([[ 1.5, 4. , 9. ], [ 4. , 10. , 18. ]])
# 除法 a / barray([[0.66666667, 1. , 1. ], [0.25 , 0.4 , 0.5 ]])
# 幂 np.multiply(a,b)array([[ 1.5, 4. , 9. ], [ 4. , 10. , 18. ]])
# 平方根 np.sqrt(b)array([[1.22474487, 1.41421356, 1.73205081], [2. , 2.23606798, 2.44948974]])
# 正弦 np.sin(a)array([0.84147098, 0.90929743, 0.14112001])
# 余弦 np.cos(b)array([[ 0.0707372 , -0.41614684, -0.9899925 ], [-0.65364362, 0.28366219, 0.96017029]])
# 自然对数 np.log(a)array([0. , 0.69314718, 1.09861229])
# 点积 e.dot(f)array([[7., 7.], [7., 7.]])
array([[False, True, True], [False, False, False]])
# 元素比较 a < 2array([ True, False, False])
# 数组比较 np.array_equal(a, b)False
6
# 数组最小值 a.min()1
# 数组行的最大值 b.max(axis=0)array([4., 5., 6.])
# 元素的累积总和 b.cumsum(axis=1)array([[ 1.5, 3.5, 6.5], [ 4. , 9. , 15. ]])
# 均值 a.mean()2.0
# 中位数 np.median(b)3.5
# 相关系数 np.corrcoef(a, b)array([[1. , 0.98198051, 1. ], [0.98198051, 1. , 0.98198051], [1. , 0.98198051, 1. ]])
# 标准差 np.std(b)1.5920810978785667
array([1, 2, 3])
# 创建数组的副本 np.copy(a)array([1, 2, 3])
# 创建数组的深层副本 h = a.copy() harray([1, 2, 3])
array([1, 2, 3])
# 对数组轴的元素进行排序 c.sort(axis=0) carray([[[1.5, 2. , 1. ], [4. , 5. , 6. ]], [[3. , 2. , 3. ], [4. , 5. , 6. ]]])
3
b[1,2]6.0
array([1, 2])
b[0:2,1]array([2., 5.])
b[:1]array([[1.5, 2. , 3. ]])
c[1, ...]array([[3., 2., 3.], [4., 5., 6.]])
a[ : :-1]array([3, 2, 1])
array([1])
# 花式索引 b[[1, 0, 1, 0],[0, 1, 2, 0]]array([4. , 2. , 6. , 1.5])
b[[1, 0, 1, 0]][:,[0,1,2,0]]array([[4. , 5. , 6. , 4. ], [1.5, 2. , 3. , 1.5], [4. , 5. , 6. , 4. ], [1.5, 2. , 3. , 1.5]])
array([[1.5, 2. , 3. ], [4. , 5. , 6. ]])
array([1.5, 2. , 3. , 4. , 5. , 6. ])
g.reshape(3, -2)array([[-0.5, 0. ], [ 0. , -3. ], [-3. , -3. ]])
array([ 1. , 2. , 3. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , -0.5, 0. , 0. , -3. , -3. , -3. ])
# 在数组中插入元素 np.insert(a, 1, 5)array([1, 5, 2, 3])
# 从数组中删除元素 np.delete(a,[1])array([1, 3])
array([ 1, 2, 3, 10, 15, 20])
# 垂直堆叠数组(逐行) np.vstack((a,b))array([[1. , 2. , 3. ], [1.5, 2. , 3. ], [4. , 5. , 6. ]])
# 垂直堆叠数组(逐行) np.r_[e,f]array([[7., 7.], [7., 7.], [1., 0.], [0., 1.]])
# 水平堆叠阵列(逐列) np.hstack((e,f))array([[7., 7., 1., 0.], [7., 7., 0., 1.]])
# 创建堆叠的列式数组 np.column_stack((a,d))array([[ 1, 10], [ 2, 15], [ 3, 20]])
# 创建堆叠的列式数组 np.c_[a,d]array([[ 1, 10], [ 2, 15], [ 3, 20]])
[array([1]), array([2]), array([3])]
h h.resize(2, 6) # 在第 2 个索引处垂直拆分数组 np.vsplit(c,2)[array([[[1.5, 2. , 1. ], [4. , 5. , 6. ]]]), array([[[3., 2., 3.], [4., 5., 6.]]])]
在线查看: https://github.com/iOSDevLog/AIDevLog/blob/master/Python 基础/NumpyBasic.ipynb
