آموزش numpy | عملیات فیلترینگ با آرایه ها

فیلترینگ بر اساس شرط

فیلترینگ بر اساس شرط یکی از قدرتمندترین قابلیت‌های NumPy است که به شما امکان می‌دهد عناصر یک آرایه را بر اساس یک شرط خاص انتخاب کنید. این کار با استفاده از مفهوم "ایندکس‌گذاری بولی" (Boolean Indexing) انجام می‌شود.

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

مثال ساده:

import numpy as np

# ایجاد یک آرایه نمونه
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

# ایجاد شرط: انتخاب اعداد بزرگتر از 5
condition = arr > 5

# اعمال فیلتر
filtered_arr = arr[condition]
print(filtered_arr)  # خروجی: [ 6  7  8  9 10]

همچنین می‌توانید شرط را مستقیماً درون براکت‌ها قرار دهید:

# روش کوتاه‌تر
filtered_arr = arr[arr > 5]
print(filtered_arr)  # خروجی: [ 6  7  8  9 10]

برای آرایه‌های دو بعدی نیز به همین صورت عمل می‌کنیم:

# ایجاد آرایه دو بعدی
arr_2d = np.array([[1, 2, 3],
                   [4, 5, 6],
                   [7, 8, 9]])

# انتخاب عناصر بزرگتر از 4
filtered_2d = arr_2d[arr_2d > 4]
print(filtered_2d)  # خروجی: [5 6 7 8 9]

می‌توانید از عملگرهای منطقی مختلف استفاده کنید:

# استفاده از AND (&)
filtered_and = arr[(arr > 3) & (arr < 8)]
print(filtered_and)  # خروجی: [4 5 6 7]

# استفاده از OR (|)
filtered_or = arr[(arr < 3) | (arr > 7)]
print(filtered_or)   # خروجی: [ 1  2  8  9 10]

# استفاده از NOT (~)
filtered_not = arr[~(arr > 5)]
print(filtered_not)  # خروجی: [1 2 3 4 5]

همچنین می‌توانید از توابع مقایسه‌ای استفاده کنید:

# استفاده از تابع where
indices = np.where(arr > 5)
print(indices)  # خروجی: (array([5, 6, 7, 8, 9]),)
print(arr[indices])  # خروجی: [ 6  7  8  9 10]

# یا مستقیماً مقادیر را دریافت کنید
result = np.where(arr > 5, arr, 0)
print(result)  # خروجی: [ 0  0  0  0  0  6  7  8  9 10]

فیلترینگ شرطی ابزار بسیار مفیدی برای کار با داده‌ها است و به شما امکان می‌دهد به راحتی داده‌های مورد نظر خود را از آرایه‌های بزرگ استخراج کنید.

پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1
  • 2
  • 3
  • 4