我有一个维度为(30000,3,3)的numpy数组A我有一个维度为(30000)的numpy数组B,我想将B中的每个标量乘以A中相应的3x3矩阵,我想得到形状为(30000,3,3)的结果矩阵。我试过使用np.multiply函数,但没有成功。
odopli941#
在Python 3.5中,引入了两个新的运算符@和@=来处理矩阵乘法。添加这些运算符是为了解决将*运算符同时用于元素乘法和矩阵乘法所引起的混淆,这取决于特定的库或代码约定。新的二元运算符@的使用类似于*,但专门用于矩阵乘法。它阐明了意图是执行矩阵乘法而不是逐元素乘法。类似地,原地版本@=可以用于原地矩阵乘法,类似于*=用于元素乘法。
@
@=
*
*=
import numpy as np # Define two matrices A and B A = np.array([[1, 2], [3, 4]]) B = np.array([[11, 12], [13, 14]]) # Matrix multiplication using @ operator result_matrix = A @ B print(result_matrix)
有关更多信息,您可以参考PEP0465,它解释了引入这些新操作符的基本原理。
1条答案
按热度按时间odopli941#
在Python 3.5中,引入了两个新的运算符
@
和@=
来处理矩阵乘法。添加这些运算符是为了解决将*
运算符同时用于元素乘法和矩阵乘法所引起的混淆,这取决于特定的库或代码约定。新的二元运算符
@
的使用类似于*
,但专门用于矩阵乘法。它阐明了意图是执行矩阵乘法而不是逐元素乘法。类似地,原地版本
@=
可以用于原地矩阵乘法,类似于*=
用于元素乘法。有关更多信息,您可以参考PEP0465,它解释了引入这些新操作符的基本原理。