2014-11-24 5 views
2

다른 크기의 곱하기 배열.다른 크기의 배열 곱하기

import numpy as np 

a = np.array([1,2,3,4,5]) 

b = np.array([1,2,3]) 

print a*b 

당연히 오류 : 결과

ValueError: operands could not be broadcast together with shapes (5,) (3,) 

을 기대는 np.array ([1,4,9,0,0]가)

어떻게하는 것입니다?

답변

6
>>> a = np.array([1,2,3,4,5]) 
>>> b = np.array([1,2,3]) 
>>> b.resize(a.shape) 
>>> a * b 
array([1, 4, 9, 0, 0]) 
0

크기의 차이에 따라 작은 배열 제로 어레이를 추가 :

import numpy as np 

a = np.array([1,2,3,4,5]) 
b = np.array([1,2,3]) 

diff = len(a) - len(b) 

c = np.append(b, np.zeros(diff)) 

print a*c 
+0

크기가 누락되었습니다. –

0

상기 응답이 정확하지만, 하나 개의 라인에있는 임시을 만들지 않고 그것을 할

c=np.append(a,np.zeros(0 if (len(b) - len(a))<0 else (len(b) - len(a))))*np.append(b,np.zeros(0 if (len(a) - len(b))<0 else (len(a) - len(b))))