详解NumPy 矩阵,np.dot()
乘法操作(图文详解1)
详细介绍一下 NumPy 中的矩阵乘法操作。
- 函数作用:
在 NumPy 中,可以使用np.dot()
或@
运算符来执行矩阵乘法操作。这两种方式都可以实现矩阵乘法,但在底层实现上略有不同。 - 底层原理:
NumPy 中的矩阵乘法操作利用了线性代数中矩阵乘法的定义。具体来说,对于两个矩阵 A(m×n) 和 B(n×p),它们的乘积矩阵 C(m×p) 中的每个元素 C[i,j] 都是由 A 的第 i 行和 B 的第 j 列的对应元素相乘后求和得到的。 - 使用步骤:
a. 导入 NumPy 库
b. 创建两个可以进行矩阵乘法的 NumPy 数组
c. 使用np.dot()
或@
运算符进行矩阵乘法
d. 观察结果矩阵 - 开发流程:
- 确定需要进行矩阵乘法的两个 NumPy 数组
- 检查两个数组的形状,确保可以进行矩阵乘法(前一个矩阵的列数必须等于后一个矩阵的行数)
- 使用
np.dot()
或@
运算符进行矩阵乘法 - 将结果矩阵赋值给一个新的变量
- 输出结果矩阵,观察计算结果
- 示例代码:
import numpy as np
# 创建两个矩阵
A = np.array([[1, 2, 3], [4, 5, 6]])
B = np.array([[7, 8], [9, 10], [11, 12]])
# 使用 np.dot() 进行矩阵乘法
C1 = np.dot(A, B)
print("使用 np.dot() 进行矩阵乘法:")
print(C1)
# 输出:
# [[58 64]
# [139 154]]
# 使用 @ 运算符进行矩阵乘法
C2 = A @ B
print("\n使用 @ 运算符进行矩阵乘法:")
print(C2)
# 输出:
# [[58 64]
# [139 154]]
# 检查矩阵乘法的维度限制
# D = np.array([[1, 2], [3, 4]])
# E = np.array([[5, 6, 7], [8, 9, 10]])
# F = D @ E # 报错,因为 D 的列数不等于 E 的行数
总结:
NumPy 提供了两种方式进行矩阵乘法操作:使用 np.dot()
函数或 @
运算符。这两种方式都遵循线性代数中矩阵乘法的定义,要求前一个矩阵的列数必须等于后一个矩阵的行数。掌握好矩阵乘法的使用方法和局限性,对于从事科学计算、机器学习等领域的工作非常有帮助。