问题:
你需要执行矩阵和线性代数运算,比如矩阵乘法、寻找行列式、求解线性方程组等等。
解决方案:
Numpy库有一个矩阵对象可以用来解决这个问题。
矩阵类似于3.9小节中数组对象,但是遵循线性代数的计算规则。下面的一个例子展示了矩阵的一些基本特性:
import numpy as np
m = np.matrix([[1, -2, 3], [0, 4, 5], [7, 8, -9]])
print(m)
'''
[[ 1 -2 3]
[ 0 4 5]
[ 7 8 -9]]
'''
print(m.T)
'''
[[ 1 0 7]
[-2 4 8]
[ 3 5 -9]]
'''
print(m.I)
'''
[[ 0.33043478 -0.02608696 0.09565217]
[-0.15217391 0.13043478 0.02173913]
[ 0.12173913 0.09565217 -0.0173913 ]]
'''
v = np.matrix([[2], [3], [4]])
print(v)
'''
[[2]
[3]
[4]]
'''
print(m*v)
'''
[[ 8]
[32]
[ 2]]
'''
可以在numpy.linalg子句中找到更多的操作函数,比如:
import numpy.linalg
print(numpy.linalg.det(m))# ->-229.99999999999983
print(numpy.linalg.eigvals(m))
'''
[-13.11474312 2.75956154 6.35518158]
'''
x = numpy.linalg.solve(m, v)
print(m*x)
'''
[[2.]
[3.]
[4.]]
'''
print(v)
'''
[[2]
[3]
[4]]
'''