NumPy 包含许多函数,可提供线性代数所需的所有功能。下面提到的是执行不同代数计算最常用的函数。

函数说明
dot()返回两个数组的点积。
vdot()返回两个向量的点积 .
inner()返回两个数组的内积。
matmul()返回两个数组的矩阵乘法。
det()计算矩阵的行列式。
solve()求解线性矩阵方程。
inv()返回乘法 矩阵的逆。

让我们详细讨论这些函数:

numpy.dot() 函数

numpy.dot() 函数返回两个数组的点积。在下面的示例中,计算 Arr1 和 Arr2 的点积。

import numpy as np
Arr1 = np.array([[1, 2], 
                 [3, 4]])
Arr2 = np.array([[10, 20], 
                 [30, 40]])
Arr3 = np.dot(Arr1, Arr2)

print(Arr3) 

上述代码的输出将为:

[[ 70 100]
 [150 220]] 

点积计算如下:

[[1*10+2*30 1*20+2*40]
 [3*10+4*30 3*20+4*40]]

= [[ 70 100]
   [150 220]] 

numpy.vdot() 函数

numpy.vdot() 函数返回两个向量的点积。在下面的示例中,计算 vec1 和 vec2 的点积。

import numpy as np
vec1 = np.array([1, 2, 3])
vec2 = np.array([10, 20, 30])
retval = np.dot(vec1, vec2)

print(retval) 

上述代码的输出将是:

140 

点积计算如下:

1*10+2*20+3*30 = 140 

numpy.inner() 函数

numpy.inner() 函数返回两个数组的内积。在下面的示例中,计算 Arr1 和 Arr2 的内积。

import numpy as np
Arr1 = np.array([[1, 2], 
                 [3, 4]])
Arr2 = np.array([[10, 20], 
                 [30, 40]])
Arr3 = np.inner(Arr1, Arr2)

print(Arr3) 

上述代码的输出将是:

[[ 50 110]
 [110 250]] 

内积计算如下:

[[1*10+2*20 1*30+2*40]
 [3*10+4*20 3*30+4*40]]

= [[ 50 110]
   [110 250]] 

numpy.matmul() 函数

numpy.matmul() 函数用于计算两个数组的矩阵乘法。在下面的示例中,计算 Arr1 和 Arr2 的矩阵乘法。

import numpy as np
Arr1 = np.array([[1, 2], 
                 [3, 4]])
Arr2 = np.array([[10, 20], 
                 [30, 40]])
Arr3 = np.matmul(Arr1, Arr2)

print(Arr3) 

上述代码的输出将是:

[[ 70 100]
 [150 220]] 

矩阵乘法计算如下:

[[1*10+2*30 1*20+2*40]
 [3*10+4*30 3*20+4*40]]

= [[ 70 100]
   [150 220]] 

numpy.linalg.det() 函数

numpy.linalg.det() 函数用于计算矩阵的行列式。在下面的示例中,计算矩阵 mat 的行列式。

import numpy as np
mat = np.array([[1, 2], 
                 [3, 4]])
retval = np.linalg.det(mat)

print(retval) 

上述代码的输出将是:

-2.0000000000000004 

行列式计算如下:

1*4-2*3 = -2 

numpy.linalg.solve()函数

numpy.linalg.solve()函数用于求解线性方程组矩阵方程。考虑下面提到的线性方程组:

NumPy 线性代数

可以用矩阵形式表示如下。

NumPy 线性代数

上述方程的解为:x=1, y=5, z =7。这可以使用 numpy.linalg.solve() 函数来解决,如下例所示。

import numpy as np
A = np.array([[1, 2, 3], 
              [2, 3, 1],
              [3, 1, 2]])
B = np.array([32, 24, 22])

sol = np.linalg.solve(A, B)
print(sol) 

上述代码的输出将是:

[ 1.  5.  7.] 

numpy.linalg.inv() 函数

numpy.linalg.inv() 函数用于计算给定矩阵的乘法逆矩阵。 在下面的示例中,计算矩阵 mat 的乘法逆矩阵。

import numpy as np
mat = np.array([[1, 2], 
                [3, 4]])
invmat = np.linalg.inv(mat)

print("原始矩阵:")
print(mat)

print("\n逆矩阵:")
print(invmat) 

上述代码的输出将是:

原始矩阵:
[[1 2]
 [3 4]]

逆矩阵:
[[-2.   1. ]
 [ 1.5 -0.5]]