【发布时间】:2013-01-08 21:50:40
【问题描述】:
我正在尝试将 3D 数组乘以 1D 数组,这样沿第 3(深度:d)维度的每个 2D 数组的计算方式如下:
1D_array[d]*2D_array
我最终得到了一个看起来像这样的数组:
[[
[1,1]
[1,1]]
[
[2,2]
[2,2]]
[
[3,3]
[3,3]]]
这将是正确地将 np.ones((3,2,2)) 与 [1,2,3] 相乘的结果。
我已经尝试了一段时间,无论我做什么我都无法得到这个结果,只是主题的变化。我该如何正确地执行此操作?
感谢您的帮助。
【问题讨论】:
-
如果你的数组是
a和b,你在找b[:, None] * a吗? -
我刚试过
b=np.ones((3,2,2))a=np.array(range(-1,2))ans=b[:, None]*a但它抛出了一个错误:ValueError: operands could not be broadcast together with shapes (1,3) (3,2,2)我确定我只是在做一些愚蠢的事情? -
在这种情况下,我想你想要
a[:, None, None] * b。 -
您要求“沿第三维堆叠的二维数组”,但您的示例将它们沿第一维堆叠。
-
@Alok,您可以发表您的评论作为答案,因为它解决了问题...
标签: python arrays numpy multidimensional-array array-broadcasting