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.总结

  • @ 是矩阵乘法运算符,遵循线性代数规则,用于矩阵-矩阵、矩阵-向量的乘法。
  • 与逐元素乘法 (*) 不同,@ 是针对矩阵的逻辑运算。
  • 推荐与 NumPy 一起使用,用于高效的线性代数计算。
  • 作者:Charonrise

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python中矩阵乘法运算符@的详细解析

    发表回复