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