बूलियन अनुक्रमण या मास्किंग चयन का एक अच्छा बुनियादी तरीका है, या एक सरणी
आप एक विशिष्ट 'वस्तु' शब्द को हटा के बारे में बात के विशिष्ट तत्वों को हटाने के। के कि सचमुच लेने के लिए और dtype वस्तु की एक सरणी को परिभाषित करते हैं:
In [2]: x=np.array(['a','b','c','d','e'],dtype=object)
In [3]: x
Out[3]: array(['a', 'b', 'c', 'd', 'e'], dtype=object)
In [4]: x=='d' # elements that equal 'd'
Out[4]: array([False, False, False, True, False], dtype=bool)
In [5]: x!='d' # elements that don't
Out[5]: array([ True, True, True, False, True], dtype=bool)
In [6]: x[x!='d'] # select a subset
Out[6]: array(['a', 'b', 'c', 'e'], dtype=object)
दृश्यों argwhere
और delete
इस प्रयोग के पीछे। ध्यान दें कि argwhere
x==d
बूलियन सरणी का उपयोग करता है, जो इसे सरणी इंडेक्स में परिवर्तित करता है। और इस तरह मुखौटा बनाना एक तरीका है कि delete
संचालित होता है।
कुछ महत्वपूर्ण सीमा नहीं है:
समानता (या नहीं समानता) परीक्षण अपने मूल्यों के लिए काम करने के लिए है। यह नहीं हो सकता है कि तत्व तैर रहे हैं।
1 डी सरणी से हटाना 2 डी (या बड़ा) से आसान है। 2 डी के साथ आपको यह तय करना होगा कि कोई पंक्ति, कॉलम, या तत्व (और सरणी को फ़्लैटन करने की प्रक्रिया में) को हटाना है या नहीं।
उन मैचों का केवल एक तत्व हटाना थोड़ा सा ट्रिकियर है।
कुछ मामलों के लिए यह .tolist()
सरणी के लिए बेहतर हो सकता है और एक सूची विधि का उपयोग हो सकता है।
In [32]: xl=x.tolist()
In [33]: xl.remove('d')
In [34]: np.array(xl,dtype=object)
Out[34]: array(['a', 'b', 'c', 'e'], dtype=object)
एरे के लिए list.remove
के बराबर सटीक नहीं है।
thx बहुत, इसने मेरे जीवन को आसान बना दिया! :) – MhmdMnsr