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.]]

 

    可以看出来,,,行列式的值为零时,该矩阵不可逆。符合数学规律的。还有其他函数功能,例如切片、复制等。这些操作都比较简单,在以后的实例中会学习到,从而加强记忆

posted @ 2018-02-22 20:30  CCColby  阅读(284)  评论(0编辑  收藏  举报