我有两个数组一是3d:
np.array([[[1,2,3],[3,2,1]],
[[2,3,2],[1,2,5]]])
和一个2d数组:
np.array([[2,3],
[3,4]])
我希望将这两个相乘得到
np.array([[[2,4,6],[9,6,3]],
[[6,9,6],[4,8,20]]])
如何使用numpy包来做到这一点?感谢。
答案 0 :(得分:3)
使用broadcasting:
In [129]: b[:,:,None] * a
Out[129]:
array([[[ 2, 4, 6],
[ 9, 6, 3]],
[[ 6, 9, 6],
[ 4, 8, 20]]])
答案 1 :(得分:0)
以下名称:
main = np.array([[[1,2,3],[3,2,1]],
[[2,3,2],[1,2,5]]])
fac = np.array([[2,3],
[3,4]])
它可以通过迭代进行管理,如下所示:
a1 = []
for i in [0,1]:
a2 = []
for j in [0,1]:
a2.append(main[i][j]*fac[i][j])
a1.append(a2)
print(a1)
输出:
[[array([2, 4, 6]), array([9, 6, 3])], [array([6, 9, 6]), array([ 4, 8, 20])]]