Python扩展库NumPy快速入门
NumPy(Numerical Python)是Python一个扩充库。支持维度数组与矩阵运算,提供大量的数学函数库。
ndarray类 :NumPy中的数组类被称为ndarray
属性:
ndarray.ndim表示数组的维度。
ndarray.shape是一个整型tuple,用来表示数组中的每个维度的大小。例如,一个n行和m列的矩阵,其shape为(n,m)。
ndarray.size表示数组中元素的个数,其值等于shape中所有整数的乘积
ndarray.dtype用来描述数组中元素的类型
ndarray.itemsize用于表示数组中每个元素的字节大小
import numpy as np a=np.arange(10).reshape(2,5) a array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) 注意:size=n*m 否则会报错
a.shape (2, 5) a.ndim 2 a.size 10 a.dtype dtype('int32') a.itemsize 4
数组创建
直接使用list或者tuple
import numpy as np a = np.array([1,2,3,4,5,6]) b = np.array((1,2,3,4,5,6)) a array([1, 2, 3, 4, 5, 6]) b array([1, 2, 3, 4, 5, 6])
传入的参数必须是同一结构,不是同一结构将发生转换
NumPy还提供了便捷地创建特定数组的方式
a=np.zeros((3,3))
array([[0., 0., 0.], [0., 0., 0.], [0., 0., 0.]])
a=np.ones([2,4])
array([[1., 1., 1., 1.], [1., 1., 1., 1.]])
c = np.arange(15)
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
e=np.arange(15).reshape(5,3)
array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11], [12, 13, 14]])
g = np.arange(0,15,3)
array([ 0, 3, 6, 9, 12])
h = np.arange(0,3,0.4)
array([0. , 0.4, 0.8, 1.2, 1.6, 2. , 2.4, 2.8])
数组的基本操作(加减乘除)
相对应的位置进行加减乘除,这一块很简单,就不多做介绍
在NumPy中,*
用于数组间元素对应的乘法,而不是矩阵乘法,矩阵乘法可以用dot()
方法来实现
a=np.array([[1,2],[4,5]]) b=np.array([[0,1],[0,1]]) a array([[1, 2], [4, 5]]) b array([[0, 1], [0, 1]]) a*b array([[0, 2], [0, 5]]) a.dot(b) array([[0, 3], [0, 9]])
矩阵乘积小结:
1. 只有当第一个矩阵的列数等于第二个矩阵的行数,两个矩阵才能相乘
2.矩阵相乘不满足交换律,AB!=BA
3.矩阵相乘不满足消去率,例如:AB=AC 且A!=0 不能推出B=C
ndarray类实现了许多操作数组的一元方法,如求和、求最大值、求最小值等。
a = np.random.random((2,3))
求和:a.sum()
最小值:a.min()
最大值:a.max()
axis = 0表示列操作
axis = 1表示行操作