【发布时间】:2020-06-21 13:47:10
【问题描述】:
我想将 3D 矩阵的每个元素与相同位置的相同大小矩阵的元素相乘。
在 2D 中它看起来像:
除了for循环之外,numpy还有什么干净的解决方案吗?
编辑: 这个矩阵运算被命名为“Hadamard product”
【问题讨论】:
我想将 3D 矩阵的每个元素与相同位置的相同大小矩阵的元素相乘。
在 2D 中它看起来像:
除了for循环之外,numpy还有什么干净的解决方案吗?
编辑: 这个矩阵运算被命名为“Hadamard product”
【问题讨论】:
只需将它们相乘即可。 numpy 支持矩阵运算。
x = np.arange(1, 10).reshape(3, 3)
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
print(x*x)
所有元素都将乘以各自的数字。
array([[ 1, 4, 9],
[16, 25, 36],
[49, 64, 81]])
【讨论】:
您可以使用简单的* 与 numpy 数组进行元素乘法。
a = np.array([[1,2],[3,4]])
b = np.array([[1,2],[3,4]])
print(a*b)
会给你
[[ 1 4]
[ 9 16]]
【讨论】: