निम्न numpy
कोड पर विचार करें:numpy: बूलियन अनुक्रमण और स्मृति उपयोग
A[start:end] = B[mask]
यहां:
A
औरB
कॉलम की समान संख्या वाले 2 डी सरणी हैं;start
औरend
स्केलर हैं;mask
एक 1 डी बुलियन सरणी है;(end - start) == sum(mask)
।
सिद्धांत रूप में, B
के तत्वों को सीधे A
में कॉपी करके उपरोक्त ऑपरेशन O(1)
अस्थायी संग्रहण का उपयोग करके किया जा सकता है।
क्या यह वास्तव में अभ्यास में होता है, या numpy
B[mask]
के लिए एक अस्थायी सरणी बनाता है? यदि उत्तरार्द्ध, कथन को फिर से लिखकर इससे बचने का कोई तरीका है?
+1। यह इस तरह के लूप है कि यह एक्सेल करता है। –