نمپی آرری فیلٹر

فیلتر کردن آرایه

برداشت از آرایه‌های موجود و ایجاد آرایه‌های جدید از آن‌ها به عنوان فیلتر (filtering) شناخته می‌شود.

در NumPy، ما از لیست‌های شماره‌ی بولان برای فیلتر کردن آرایه‌ها استفاده می‌کنیم.

لیست‌های شماره‌ی بولان با لیست‌های شماره‌ی بولان در آرایه‌ها مطابقت دارند.

اگر مقدار در شماره‌ی True، عنصر در آرایه فیلتر شده شامل خواهد شد؛ اگر مقدار در شماره‌ی False، بنابراین عنصر از آرایه فیلتر شده حذف خواهد شد.

مثال

یک آرایه با استفاده از عناصر در شماره‌های 0 و 2، 4 ایجاد کنید:

import numpy as np
arr = np.array([61, 62, 63, 64, 65])
x = [True، False، True، False، True]
newarr = arr[x]
print(newarr)

اجرای مثال

مثال بالا [61، 63، 65]چرا؟

زیرا فیلتر جدید تنها شامل مقدارهای آرایه‌های فیلتر است True مقدار را، بنابراین در این حالت، شماره‌های 0 و 2، 4 هستند.

ایجاد آرایه‌های فیلتر

در مثال بالا، ما True و False مقدار به صورت سخت‌کد شده است، اما معمولاً استفاده از آن برای ایجاد آرایه‌های فیلتر بر اساس شرط است.

مثال

یک آرایه فیلتر ایجاد کنید که فقط بازمی‌گرداند مقادیر بزرگتر از 62:

import numpy as np
arr = np.array([61, 62, 63, 64, 65])
# یک لیست خالی ایجاد کنید
filter_arr = []
# هر عنصر در arr را مرور کنید
for element in arr:
  # اگر عنصر بيشتر از 62 است، مقدار را به True تنظیم می‌کنیم، در غیر این صورت به False:
  اگر عنصر بيشتر از 62 است:
    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)

اجرای مثال