我有一个数组A
形状(w,h) = 3000,2000
和另一个数组 B
形状d = 100
我想将 A
的每个值相乘通过B
,并以数组的形式得到结果 C
形状(w,h,d) = 3000,2000,100
现在我正在使用下面非常慢的代码,如何向量化这个操作?
w,h,d = 3000,2000,100
A = np.ones((w,h))
B = np.arange(d)
C = np.zeros((w,h,d))
for i in xrange(w):
for j in xrange(h):
C[i,j] = A[i,j] * B
谢谢
最佳答案
使用numpy broadcast .
试试这个
from numpy.random import rand
a = rand(4,5)
b = rand(6)
c = a[...,None] * b
print (c.shape)
或者等价
c = a.reshape(4,5,1)*b
关于arrays - numpy 乘以不同形状的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38433069/