章节
NumPy中包含了numpy.linalg模块,提供线性代数运算功能。下表描述了该模块中的一些重要功能。
SN | 函数 | 描述 |
---|---|---|
1 | dot() | 两个数组的点积 |
2 | vdot() | 两个向量的点积 |
3 | inner() | 两个数组的内积 |
4 | matmul() | 两个数组的矩阵乘积 |
5 | det() | 计算矩阵的行列式 |
6 | solve() | 解线性矩阵方程 |
7 | inv() | 求矩阵的乘法逆矩阵 |
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.]]