2016-07-18 10 views
2

I形状(w,h) = 3000,2000 のアレイA及びIは、アレイ状にBによってAの各値を乗算し、その結果を取得したい形状d = 100numpyの乗算アレイ

の別のアレイ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 

あなた

答えて

5

使用numpyのbroadcastをありがとうございます。

この

from numpy.random import rand 
a = rand(4,5) 
b = rand(6) 
c = a[...,None] * b 
print (c.shape) 

それともequivelently

c = a.reshape(4,5,1)*b 
をお試しください