मुझे 2560x2160 2 डी 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 RAM) क्या इस लूप को आंतरिक 'if' कथन के साथ करने का कोई तेज़ तरीका है? मुझे केवल एक निश्चित सीमा से ऊपर पिक्सल में दिलचस्पी है, लेकिन मुझे उनके (एक्स, वाई) सूचकांक और मूल्य की आवश्यकता है।
वाह! मेरी आंखें खोली गई हैं। <0.1 सेकंड ले लिया। – dinkelk
एक्स और वाई में क्या है? –
@AndrewHundt: 'x' और' y' क्रमशः nonzero अंक के लिए x- और y-indices के सरणी हैं। – nneonneo