如何将列逐行乘以3D numpy数组

xuo3flqw  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(80)

我有一个维度为(30000,3,3)的numpy数组A我有一个维度为(30000)的numpy数组B,我想将B中的每个标量乘以A中相应的3x3矩阵,我想得到形状为(30000,3,3)的结果矩阵。
我试过使用np.multiply函数,但没有成功。

odopli94

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,它解释了引入这些新操作符的基本原理。

相关问题