上一篇文章简单地介绍了numpy的一些基本数据类型,以及生成数组和矩阵的操作。下面我们来看一下矩阵的基本运算。在线性代数中,常见的矩阵运算包括,计算行列式、求逆矩阵、矩阵的秩等。下面我们来一一实现。
C:\Users\Administrator\Desktop
λ ipython
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help. In [1]: import numpy as np In [2]: from numpy import linalg #导入linalg这个库 In [3]: A=np.mat([[1,2,4,5,7],[9,10,8,6,2],[6,4,3,9,7],[0,1,3,5,6],[2,3,4,3,8]]) In [4]: temp=linalg.det(A) #计算行列式值 In [5]: print(temp)
-285.99999999999966 In [6]: temp2=linalg.inv(A) #计算可逆矩阵 In [7]: print(temp2)
[[ 2.74825175 -0.18181818 0.2027972 -2.4965035 -0.66433566]
[-4.5979021 0.31818182 -0.14335664 3.6958042 1.2972028 ]
[ 3.18181818 -0.09090909 -0.09090909 -2.36363636 -0.90909091]
[-0.59090909 0.04545455 0.04545455 0.68181818 -0.04545455]
[-0.33216783 -0.04545455 0.03146853 0.16433566 0.27622378]] In [8]: n=linalg.matrix_rank(A) #计算矩阵的秩 In [9]: print(n)
5 In [10]: C=np.mat([[3,1],[1,2]]) In [11]: D=np.mat([9,8]) In [12]: X=linalg.solve(C,D.T) #计算线性方程组的解 In [16]: print(X)
[[2.]
[3.]]
可以看出来,,,行列式的值为零时,该矩阵不可逆。符合数学规律的。还有其他函数功能,例如切片、复制等。这些操作都比较简单,在以后的实例中会学习到,从而加强记忆