त्वरित उत्तर
नंपाई ऐरे में एक निश्चित सीमा से अधिक मानों को प्रभावी ढंग से बदलने के लिए, बूलियन इंडेक्सिंग का उपयोग करें:
import numpy as np
arr = np.array([1, 2, 5, 7, 4])
arr[arr > 3] = 0
इस प्रकार, ऐरे arr
इस प्रकार हो जाएगा: [1, 2, 0, 0, 0]
. सभी तत्व जो 3 से अधिक हैं, उन्हें शून्य से बदल दिया गया है।
दक्षता अधिकतम करना: संचालन का अनुकूलन और प्रदर्शन में वृद्धि
इन-प्लेस संचालन और क्लिप विधि के साथ मानों को क्लिप करना
नंपाई अपनी प्रदर्शन क्षमता और संचालन की गति से प्रभावित करता है। ऐरे में मानों की सीमाओं को सीधे सेट करने के लिए clip
विधि का उपयोग करें:
arr.clip(max=3, out=arr)
अब हर मान जो 3 से अधिक होगा, उसे 3 में बदल दिया जाएगा।
np.where
के साथ तत्वों की सशर्त प्रतिस्थापन
np.where
फ़ंक्शन तत्वों की सशर्त प्रतिस्थापन के लिए एक शक्तिशाली उपकरण है:
arr = np.where(arr > 3, 0, arr)
यह एक नया ऐरे देगा। हालांकि, बड़े डेटा वॉल्यूम के साथ सावधान रहें क्योंकि इससे बहुत सारी मेमोरी की आवश्यकता हो सकती है।
प्रदर्शन को बढ़ावा देना: प्रोफाइलिंग और अनुकूलन
आपके संचालन की गति का आकलन करने के लिए, आप उनके निष्पादन समय को माप सकते हैं। बड़े मैट्रिक्स के साथ काम करते समय, timeit
उपकरण का उपयोग करने की सिफारिश की जाती है:
import timeit
timeit.timeit('large_arr[large_arr > 255] = 0', globals=globals(), number=1000)
समय रिकॉर्ड करना न भूलें!
सीमा को सीमित करना: np.minimum
/maximum
फ़ंक्शन
np.minimum
और np.maximum
फ़ंक्शन तत्वों के सीमा मानों को नियंत्रित करने की अनुमति देते हैं:
arr = np.minimum(arr, 3)
यह सुनिश्चित करता है कि सभी मान निर्दिष्ट सीमा के भीतर रहें।
दृष्टांत
ध्यान दें कि ऐरे तत्वों को बगीचे के फूलों की तरह दर्शाया जा सकता है, जिनमें से प्रत्येक का अपना रंग और ऊंचाई होती है:
प्रारंभिक बगीचा: [🌼3, 🌸5, 🌷7, 🌼2, 🌸8]
मान लें कि 6 से अधिक ऊंचाई वाले फूल बहुत ऊंचे हैं। हम उन्हें सूरजमुखियों (🌻) से बदल देंगे:
garden[garden > 6] = '🌻'
अब हमारा बगीचा बदल गया है:
परिवर्तित बगीचा: [🌼3, 🌸5, 🌻, 🌼2, 🌻]
इस प्रकार, बगीचा सामंजस्यपूर्ण हो जाता है और उज्ज्वल रंगों से भर जाता है।
आपको जिन अनुकूलन कार्यों को जानना चाहिए
np.putmask
: कुशल ऐरे संशोधन
np.putmask
फ़ंक्शन ऐरे तत्वों को कुशलतापूर्वक संशोधित करने की अनुमति देता है:
np.putmask(arr, arr > 3, 0)
यह विधि बड़े डेटा वॉल्यूम के साथ काम करने के लिए उत्कृष्ट है।
np.clip
के साथ सीमा को इन-प्लेस संभालना
np.clip
विधि मानों को क्लिप करते समय डेटा संरचना को बनाए रखने में मदद करती है:
np.clip(arr, None, 3, out=arr)
यह ऑपरेशन इन-प्लेस किया जाता है, जिससे ऐरे की संरचना बरकरार रहती है।
बूलियन इंडेक्सिंग
बूलियन इंडेक्सिंग ऐरे के साथ कुशल और त्वरित बातचीत की अनुमति देती है:
arr[arr > 3] = np.minimum(arr, 3)
यह ऑपरेशन सीधे ऐरे में किया जाता है, जिससे उच्च प्रदर्शन सुनिश्चित होता है।