【发布时间】:2020-08-17 17:45:33
【问题描述】:
我想要的真的很简单,但我不知道如何在 numpy 上做到这一点。
我有以下矩阵:
M = [[1, 1, 1],
[1, 1, 1],
[1, 1, 1]]
还有这个数组:
A = [1, 2, 3]
我想将矩阵与数组中的每个元素相乘以产生:
[[[1, 1, 1],
[1, 1, 1],
[1, 1, 1]],
[[2, 2, 2],
[2, 2, 2],
[2, 2, 2]],
[[3, 3, 3],
[3, 3, 3],
[3, 3, 3]]]
没有任何 for 循环,我只想要一个 numpy 函数。
【问题讨论】:
-
我不确定“没有任何循环”,因为您需要数组的每个元素;因此是一个循环。可能类似于
np.array([M*i for i in A])的东西? -
你有一个迭代过程;你必须有某种循环,即使它是隐式的。请注意,这不是典型的 NumPy 广播操作:您不会将
A复制到M的大小以进行元素操作。相反,您希望输出形状是两种尺寸的乘积。 -
我可以做的是传递与A相同形状的M(在第三轴上复制)并应用元素操作。我就是不能使用 python
for循环。 -
我收回了!下面有两个出色的解决方案。今天学到了新东西! :-)