我需要循环遍历一个2560x2160的2D numpy数组(图片)中的每个像素。我的问题简化如下:
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内存)是否有更快的方法执行内部带“if”语句的循环?我只对超过一定限制的像素感兴趣,但我确实需要它们的(x,y)索引和值。
x
和y
分别是非零点的x和y索引数组。 - nneonneoimage
和limit
中必须有一个是NumPy数组 - 如果它们都不是NumPy对象,则image> limit
可能会解析为Python布尔值,而不是NumPy布尔数组。 - nneonneo