本次介绍一下NumPy中的向量和矩阵的创建与操作,以及线性方程组的求解,分两个章节篇幅介绍。
在numpy中,ndarray表示向量和矩阵,是N-dimensional array(N维数组)的缩写,由多个具有相同类型和尺寸的元素组成的多维容器。
1. 向量和矩阵的创建
使用numpy.array创建一个numpy.ndarray的实例对象,可以创建向量或者矩阵,例如:
v1=np.array([1,2,-1])
print(type(v1),v1) # <class 'numpy.ndarray'> [ 1 2 -1]
A = np.array([[1,1,1],[2,-3,1],[1,2,-3]])
print(A)
'''
[[ 1 1 1]
[ 2 -3 1]
[ 1 2 -3]]
'''
分别创建了一个向量v1和3×3的矩阵(也可以理解为是一个二维数组)。通过该函数,还可以创建更高维度的数组。
如果单纯是创建向量,其实前面介绍到的nupmy.linspace和numpy.arange,返回的都是ndarray类型:
print(type(np.linspace(1,5,10))) # <class 'numpy.ndarray'>
print(type(np.arange(1,5,0.3))) #<class 'numpy.ndarray'>
对于一些特殊的二维矩阵,也有一些特定的函数,例如,numpy.eye/numpy.identity numpy.diag,和numpy.vander分别创建单位矩阵、对角矩阵和范德蒙德矩阵:
E=np.eye(3)
D=np.diag([1,2,3])
M=np.vander([1,2,3],3)
print(M)
'''
[[1 1 1]
[4 2 1]
[9 3 1]]
'''
其中,eye可以创建行、列不相等的单位矩阵(只有主对角线元素为1),而identity则是创建一个方阵,另外可以看到范德蒙德矩阵和我们常见的有点不大一样。