numpy乘以不同形状的数组

时间:2016-07-18 09:25:12

标签: arrays python-2.7 numpy

我有一个形状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

谢谢

1 个答案:

答案 0 :(得分:5)

使用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