Python中矩阵乘法运算符@的详细解析
在 Python 中,@
是矩阵乘法运算符,它用于矩阵与矩阵之间的乘法运算,也可以用于矩阵与向量之间的乘法。它是在 Python 3.5 中引入的,用来专门处理线性代数中的矩阵乘法运算。
1.基本用法
@
运算符的作用等价于 numpy 中的 np.dot()
或 np.matmul()
函数。
例如:
import numpy as np
# 定义两个矩阵
A = np.array([[1, 2],
[3, 4]])
B = np.array([[5, 6],
[7, 8]])
# 矩阵乘法
C = A @ B
print(C)
输出:
[[19 22]
[43 50]]
2.与标量运算不同
如果直接使用 *
,表示逐元素相乘(Hadamard 乘积),这是按元素位置逐一相乘的结果,而不是矩阵乘法:
D = A * B
print(D)
输出:
[[ 5 12]
[21 32]]
3. 用于矩阵与向量
@
运算符也可以用于矩阵与向量的乘法:
# 定义矩阵和向量
A = np.array([[1, 2],
[3, 4]])
v = np.array([5, 6])
# 矩阵与向量乘法
result = A @ v
print(result)
输出:
[17 39]
具体解释:
4.常见错误与注意事项
维度不匹配:矩阵乘法要求左矩阵的列数等于右矩阵的行数,否则会报错。例如:
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6]])
C = A @ B # 会报错,因为 A 是 (2x2),B 是 (1x2)
5.总结
@
是矩阵乘法运算符,遵循线性代数规则,用于矩阵-矩阵、矩阵-向量的乘法。*
) 不同,@
是针对矩阵的逻辑运算。作者:Charonrise