어떻게 효율적으로 합
A = np.random.rand(20,200)
x= np.random.rand(20)
y= np.random.rand(20)
num= np.zeros(20)
for i in range (A.shape[0]):
num[i] = np.sum(A.T[i,:].dot(x[i]+y[i]))
print num
당신이 사용할 수있는 루프
어떻게 효율적으로 합
A = np.random.rand(20,200)
x= np.random.rand(20)
y= np.random.rand(20)
num= np.zeros(20)
for i in range (A.shape[0]):
num[i] = np.sum(A.T[i,:].dot(x[i]+y[i]))
print num
당신이 사용할 수있는 루프
에 대한없이 납입을 찾을 수있는 방법이 있나요 내적의 합을받을 수 있나요 효율적으로 NumPy와 np.einsum
-
num = np.einsum('ji,i->i',A[:,:20],x+y)
너비가 A.T
인 행을 따라 A.T[i,:]
, 즉의 열로 반복하고 있기 때문에 그 슬라이스는 [:,:20]
이어야합니다., 모든 열을 반복하지 않습니다.
처음으로 A.shape [0]이 잘못 작성되었습니다. x와 y는 (20)이 아닙니다. (200) –
@AyaAbdelsalam 수정 된 코드. – Divakar
완벽하게 작동합니다. 감사합니다. –
'A'의 열을 따라 반복자를 'A'의 열을 따라 반복하기 때문에 'for i in range (A.shape [1]) :'이 아닌가? – Divakar
'num = np.zeros (20)'만 필요할 것 같습니까? –
질문은 왜 스칼라 곱셈을하기 위해'점 '을 사용하고 있습니까? 'x [i] + y [i]'는 스칼라이다. –