我需要遍歷2560x2160 2D numpy陣列(圖像)的每個像素。我的問題的簡化版本如下:更快速地循環遍歷Python中圖像的每個像素?
import time
import numpy as np
t = time.clock()
limit = 9000
for (x,y), pixel in np.ndenumerate(image):
if(pixel > limit)
pass
tt = time.clock()
print tt-t
這是一個令人討厭的~30秒完成在我的電腦上。 (酷睿i7,8GB RAM) 有更快的方式來執行這個循環與一個內部'如果'的聲明?我只對超過某個限制的像素感興趣,但我確實需要它們的(x,y)指數和值。
WOW!我的眼睛被打開了。取<0.1秒。 – dinkelk
x和y這裏是什麼? –
@AndrewHundt:'x'和'y'分別是非零點的x和y索引數組。 – nneonneo