Python 3d数组乘以1d向量



我试图将[12x256x256]数组与[12]数组相乘。这个想法是,第一个是12个[256x256]数组的堆栈,第二个是一个1d标量的堆栈。如果第二个数组是[1,2,3,4,…],[12],然后我想要将3d图层的第一层乘以1,第二层乘以2,以此类推。

我该怎么做?

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

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

numpy中你可以做

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

最新更新