Python 3d数组乘以1d传染媒介

时间:2014-06-10 18:25:44

标签: python numpy

我试图将[12x256x256]数组与[12]数组相乘。这个想法是第一个是12 [256x256]数组的堆栈,第二个是1d标量的堆栈。因此,如果第二个数组是[1,2,3,4,...,12],那么我想将3d的第一层乘以1,将第二层乘以2,等等。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以添加新轴并将它们相乘。

import numpy as np    
a = np.ones((12,256,256))
b = np.array(range(12))+1
c = a * b[:, np.newaxis, np.newaxis]

答案 1 :(得分:0)

numpy你可以做

# let m be 12x256x256, n be 12
m = np.array(m)
n = np.array(n)
(m.swapaxes(0,2) * n).swapaxes(2,0)