فیلتر آرایههای NumPy
- صفحه قبلی ترتیب آرایههای NumPy
- صفحه بعدی تصادفی NumPy
فیلتر آرایه
گرفتن برخی از عناصر از آرایه موجود و ایجاد آرایه جدید به نام فیلتر (filtering) نامیده میشود.
در NumPy، ما از لیستهای اشارهگر بولانی برای فیلتر کردن آرایهها استفاده میکنیم.
لیستهای اشارهگر بولانی، لیستهایی از مقادیر بولانی هستند که با شمارندههای آرایهها مطابقت دارند.
اگر مقدار در شمارنده True
اگر عنصر، پس آن در آرایه فیلتر شده شامل خواهد بود؛ اگر مقدار در شمارنده False
اگر عنصر، پس آن از آرایه فیلتر شده حذف خواهد شد.
مثال
یک آرایه با استفاده از عناصر در شمارندههای ۰ و ۲، ۴ ایجاد میکنیم:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) x = [True, False, True, False, True] newarr = arr[x] print(newarr)
مثال بالا [۶۱، ۶۳، ۶۵]
چرا؟
چون فیلتر جدید تنها شامل مقدارهای آرایههای فیلتر است True
مقدار را، بنابراین در این حالت، شمارندهها ۰ و ۲، ۴ هستند.
ایجاد آرایههای فیلتر
در مثال بالا، ما True
و False
مقدار به صورت سختکده شده است، اما معمولاً از آن برای ایجاد آرایههای فیلتر بر اساس شرط استفاده میشود.
مثال
یک آرایه فیلتر ایجاد کنید که فقط عناصر بزرگتر از 62 را برمیگرداند:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) # یک لیست خالی ایجاد کنید filter_arr = [] # هر عنصر را در arr مرور کنید for element in arr: # اگر عنصر بیشتر از ۶۲ باشد، مقدار را به True تنظیم میکنیم، در غیر این صورت به False: اگر عنصر بیشتر از ۶۲ باشد: 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]) # یک لیست خالی ایجاد کنید filter_arr = [] # هر عنصر را در arr مرور کنید for element in arr: # اگر عنصر قابل تقسیم بر 2 باشد، مقدار را به True تنظیم کنید، در غیر این صورت به 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 راهحل خوبی برای این مشکل ارائه میدهد.
ما میتوانیم مستقیماً در شرط آرایه را جایگزین متغیر iterable کنیم و آن به صورت انتظاری عمل خواهد کرد.
مثال
یک آرایه فیلتر ایجاد کنید که فقط عناصر بزرگتر از 62 را برمیگرداند:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) filter_arr = arr > 62 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)
- صفحه قبلی ترتیب آرایههای NumPy
- صفحه بعدی تصادفی NumPy