NumPy फ़िल्टर सरणी
फ़िल्टरिंग सरणियाँ
किसी मौजूदा सरणी से कुछ तत्वों को प्राप्त करना और उनमें से एक नई सरणी बनाना फ़िल्टरिंग कहलाता है ।
NumPy में, आप बूलियन इंडेक्स सूची का उपयोग करके किसी सरणी को फ़िल्टर करते हैं ।
एक बूलियन इंडेक्स सूची सरणी में अनुक्रमित के अनुरूप बूलियन की एक सूची है।
यदि किसी अनुक्रमणिका का मान यह है True
कि तत्व फ़िल्टर किए गए सरणी में समाहित है, यदि उस अनुक्रमणिका का मान
False
उस तत्व को फ़िल्टर किए गए सरणी से बाहर रखा गया है।
उदाहरण
इंडेक्स 0 और 2 पर तत्वों से एक सरणी बनाएं:
import numpy as np
arr = np.array([41, 42, 43, 44])
x = [True,
False, True, False]
newarr = arr[x]
print(newarr)
ऊपर दिया गया उदाहरण वापस आ जाएगा [41, 43]
, क्यों?
चूंकि नए फ़िल्टर में केवल वे मान होते हैं जहां फ़िल्टर सरणी का मान होता है
True
, इस मामले में, अनुक्रमणिका 0 और 2।
फ़िल्टर ऐरे बनाना
ऊपर के उदाहरण में हमने True
और False
मानों को हार्ड-कोड किया है, लेकिन सामान्य उपयोग शर्तों के आधार पर फ़िल्टर सरणी बनाना है।
उदाहरण
एक फ़िल्टर सरणी बनाएं जो केवल 42 से अधिक मान लौटाएगा:
import numpy as np
arr = np.array([41, 42, 43, 44])
#
Create an empty list
filter_arr = []
# go through each element in
arr
for element in arr:
# if the element is higher than 42, set
the value to True, otherwise False:
if element > 42:
filter_arr.append(True)
else:
filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
उदाहरण
एक फ़िल्टर सरणी बनाएं जो मूल सरणी से केवल तत्व भी लौटाएगा:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
#
Create an empty list
filter_arr = []
# go through each element in
arr
for element in arr:
# if the element is completely divisble
by 2, set the value to True, otherwise False
if element % 2 == 0:
filter_arr.append(True)
else:
filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
सीधे ऐरे से फ़िल्टर बनाना
उपरोक्त उदाहरण NumPy में काफी सामान्य कार्य है और NumPy इससे निपटने का एक अच्छा तरीका प्रदान करता है।
हम अपनी स्थिति में चलने योग्य चर के बजाय सीधे सरणी को स्थानापन्न कर सकते हैं और यह वैसे ही काम करेगा जैसा हम उम्मीद करते हैं।
उदाहरण
एक फ़िल्टर सरणी बनाएं जो केवल 42 से अधिक मान लौटाएगा:
import numpy as np
arr = np.array([41, 42, 43, 44])
filter_arr = arr
> 42
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
उदाहरण
एक फ़िल्टर सरणी बनाएं जो मूल सरणी से केवल तत्व भी लौटाएगा:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
filter_arr = arr
% 2 == 0
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)