函数名称 | 描述说明 |
---|---|
dot | 两个数组的点积。 |
vdot | 两个向量的点积。 |
inner | 两个数组的内积。 |
matmul | 两个数组的矩阵积。 |
det | 计算输入矩阵的行列式。 |
solve | 求解线性矩阵方程。 |
inv | 计算矩阵的逆矩阵,逆矩阵与原始矩阵相乘,会得到单位矩阵。 |
import numpy as np A=[1,2,3] B=[4,5,6] print(np.dot(A,B))输出结果:
32输入二维数组时,示例如下:
import numpy as np a = np.array([[100,200], [23,12]]) b = np.array([[10,20], [12,21]]) dot = np.dot(a,b) print(dot)输出结果:
[[3400 6200] [ 374 712]]对于上述输出结果,它的计算过程如下:
[[100*10+200*12,100*20+200*21]
[23*10+12*12,23*20+12*21]]
import numpy as np a = np.array([[100,200],[23,12]]) b = np.array([[10,20],[12,21]]) vdot = np.vdot(a,b) print(vdot)输出结果:
5528
import numpy as np A=[[1 ,10], [100,1000]] B=[[1,2], [3,4]] #inner函数 print(np.inner(A,B)) #dot函数 print(np.dot(A,B))输出结果:
[[ 21 43]
[2100 4300]]
[[ 31 42]
[3100 4200]]
[[1*1+2*10 1*3+10*4 ] [100*1+1000*2 100*3+1000*4]]dot() 则表示是 A 数组每一行与 B 数组的每一列相乘。
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]]
[[1,2], [3,4]]通过对角线元素求行列式的结果(口诀:“一撇一捺”计算法):
1*4-2*3=-2
我们可以使用 numpy.linalg.det() 函数来完成计算。示例如下:import numpy as np a = np.array([[1,2],[3,4]]) print(np.linalg.det(a))输出结果:
-2.0000000000000004
3X + 2 Y + Z = 10 X + Y + Z = 6 X + 2Y - Z = 2首先将上述方程式转换为矩阵的表达形式:
方程系数矩阵: 3 2 1 1 1 1 1 2 -1 方程变量矩阵: X Y Z 方程结果矩阵: 10 6 2如果用 m 、x、n 分别代表上述三个矩阵,其表示结果如下:
m*x=n 或 x=n/m将系数矩阵与结果矩阵传递给 numpy.solve() 函数,即可求出线程方程的解,如下所示:
import numpy as np m = np.array([[3,2,1],[1,1,1],[1,2,-1]]) print ('数组 m:') print (m) print ('矩阵 n:') n = np.array([[10],[6],[2]]) print (n) print ('计算:m^(-1)n:') x = np.linalg.solve(m,n) print (x)输出结果:
x为线性方程的解: [[1.] [2.] [3.]]
import numpy as np a = np.array([[1,2],[3,4]]) print("原数组:",a) b = np.linalg.inv(a) print("求逆:",b)输出结果:
原数组: [[1 2] [3 4]] 求逆: [[-2. 1. ] [ 1.5 -0.5]]
本文链接:http://task.lmcjl.com/news/13687.html