NumPy中包含了numpy.linalg模块,提供线性代数运算功能。下表描述了该模块中的一些重要功能。
SN函数描述1dot()两个数组的点积2vdot()两个向量的点积3inner()两个数组的内积4matmul()两个数组的矩阵乘积5det()计算矩阵的行列式6solve()解线性矩阵方程7inv()求矩阵的乘法逆矩阵
numpy.dot()
numpy.dot()计算两个数组的点积。
示例
import numpy as np
a = np.array([[100,200],[23,12]])
b = np.array([[10,20],[12,21]])
dot = np.dot(a,b) #[100 * 10 + 200 * 12, 100 * 20 + 200 * 21] [23*10+12*12, 23*20 + 12*21]
print(dot)
输出
[[3400 6200]
[ 374 712]]
numpy.vdot()
numpy.dot()计算两个向量的点积。
示例
import numpy as np
a = np.array([[100,200],[23,12]])
b = np.array([[10,20],[12,21]])
vdot = np.vdot(a,b) # 100 *10 + 200 * 20 + 23 * 12 + 12 * 21
print(vdot)
输出
5528
numpy.inner()
numpy.inner()计算两个数组的内积。这个函数返回一维数组内部元素乘积的和。对于n维数组,它返回元素在最后一个轴上的乘积的和。
示例
import numpy as np
a = np.array([1,2,3,4,5,6])
b = np.array([23,23,12,2,1,2])
inner = np.inner(a,b) # 1*23 + 2*23 + 3*12 + 4*2 + 5*1 + 6*2
print(inner)
输出
130
numpy.matmul()
numpy.matmul()计算两个数组的矩阵乘积。
示例
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = np.array([[23,23,12],[2,1,2],[7,8,9]])
mul = np.matmul(a,b)
print(mul)
输出
[[ 48 49 43]
[144 145 112]
[240 241 181]]
numpy.linalg.det()
numpy.linalg.det()计算矩阵的行列式。
矩阵的行列式可以用对角元素来计算。下面是2×2矩阵的行列式
A B C D
det()计算公式:AD - BC
示例
import numpy as np
a = np.array([[1,2],[3,4]])
print(np.linalg.det(a))
输出
-2.0000000000000004
numpy.linalg.solve()
numpy.linalg.solve()解线性矩阵方程。
这个函数用于解线性方程,学过线性代数可知,线性方程可以表示为矩阵。
如下面的方程:
x + y = 20
x - y = 10
可以表示为3个矩阵的方程:
矩阵a:
1 1
1 -1
矩阵b:
x
y
矩阵c:
20
10
方程式可以表示为:
a x b = c
示例
numpy.linalg.solve()解线性矩阵方程,得出x,y的值
import numpy as np
a = np.array([[1,1],[1,-1]])
c = np.array([[20], [10]])
b = np.linalg.solve(a, c)
print(b)
输出
[[15.]
[ 5.]]