में प्रत्येक तत्व के लिए 2 डी इंडेक्स (संभावित डुप्लिकेट के साथ) के यादृच्छिक सरणी में प्रत्येक तत्व के लिए, मैं 2 डी शून्य सरणी में संबंधित ग्रिड में "+ = 1" करना चाहता हूं। हालांकि, मुझे नहीं पता कि गणना कैसे अनुकूलित करें। मानक, जैसा कि यहाँ दिखाया, पाश के लिए उपयोग करनाNumPy arrays
def interadd():
U = 100
input = np.random.random(size=(5000,2)) * U
idx = np.floor(input).astype(np.int)
grids = np.zeros((U,U))
for i in range(len(input)):
grids[idx[i,0],idx[i,1]] += 1
return grids
क्रम काफी महत्वपूर्ण हो सकता है:
>> timeit(interadd, number=5000)
43.69953393936157
इस सतत प्रक्रिया vectorize के लिए एक रास्ता है?
लगभग एक ही thing.You 'IDX बदल सकते हैं टाइपिंग था। टी। टोलिस्ट() 'से' (idx [:, 0], idx [:, 1]) ', अभी भी तेज़ होना चाहिए। – YXD
(टाइपो अभी ऊपर टिप्पणी में सही किया गया है) – YXD