2012-09-03 4 views
0

방송 I이NumPy와 : + 부울 색인

A: shape (n1, n2) array of float 
B: shape (n2,) array of float 
M: shape (n1, n2) array of bool 

가 어떻게 다음 pseduo 코드 INTE 효율적인 실제 코드를 돌려 다음을 수행 NumPy와 배열? 배열은 1 억 개를 초과하는 거대한 요소 일 수 있습니다.

A[M] = ("B broadcast to shape (n1,n2)")[M] 

답변

2

방송 효율적인 간단하고 메모리입니다 :

A, B, M = np.broadcast_arrays(A, B, M) 

그러나 MTrue 값이 같은 B[M]만큼 실제 요소를 가지고 있기 때문에 효율적인 메모리되지 않을 것 코드 A[M] = B[M]B를 사용하여.

가 대신 사용 B 이후

np.putmask(A, M, B) 

putmask 기능을 자동으로 반복, 당신도 그것을 방송 할 필요가 없습니다. 나는 그것을한다고 상상할 수는 없지만.