考慮以下numpy
代碼:numpy的:布爾索引和存儲器使用
A[start:end] = B[mask]
這裏:
A
和B
是2D陣列具有相同的列數;start
和end
是標量;mask
是一維布爾數組;(end - start) == sum(mask)
。
在原理上,上面的操作,可以使用O(1)
臨時存儲通過複製的B
元件直接進入A
進行。
這是實際發生的實際情況,還是numpy
構建了一個臨時數組B[mask]
?如果是後者,是否有辦法通過重寫語句來避免這種情況?
+1引入Cython。它擅長於這種循環。 – 2011-05-11 09:58:05