فیلتر کردن آرایه ها
به برخی عناصر از یک آرایه موجود و ایجاد یک آرایه جدید از آنها فیلترینگ گفته می شود .
در NumPy ، یک آرایه را با استفاده از فهرست فهرست بولی فیلتر می کنید .
لیست شاخص بولی یک لیست از Booleans می مربوط به شاخص در آرایه است.
اگر مقدار یک شاخص 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
and را به سختی کدگذاری 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)