NumPy

تابع where در NumPy

np.where() در NumPy: مثال جامع و توضیح

np.where() یک تابع قدرتمند در NumPy است که به شما امکان می دهد عناصر را در یک آرایه بر اساس یک شرط انتخاب کنید.

این تابع سه آرگومان دارد:

  1. شرط: یک آرایه منطقی که شرط را برای انتخاب عناصر مشخص می کند.
  2. x: یک آرایه حاوی مقادیر برای عناصر True در شرط.
  3. y: یک آرایه حاوی مقادیر برای عناصر False در شرط.

نحوه عملکرد:

  • np.where() از شرط برای تعیین اینکه کدام عناصر در x یا y استفاده شوند، عبور می کند.
  • برای هر عنصر در شرط:
    • اگر شرط True باشد، مقدار مربوطه از x در آرایه خروجی قرار می گیرد.
    • اگر شرط False باشد، مقدار مربوطه از y در آرایه خروجی قرار می گیرد.

مزایای استفاده از np.where():

  • انتخاب عناصر بر اساس معیارهای پیچیده: می توانید از هر شرط منطقی برای انتخاب عناصر استفاده کنید، حتی اگر شامل چندین معیار یا توابع پیچیده باشد.
  • ایجاد آرایه های جدید: می توانید از np.where() برای ایجاد آرایه های جدید بر اساس یک شرط استفاده کنید. این برای جایگزینی مقادیر، ایجاد ماسک ها یا استخراج زیرمجموعه های خاص از داده ها مفید است.
  • کد خواناتر: استفاده از np.where() می تواند کد شما را خواناتر کند، زیرا به طور واضح بیان می کند که چه عناصری بر اساس چه شرایطی انتخاب می شوند.

مثال های کاربردی:

۱. جایگزینی مقادیر بر اساس شرط:

Python
import numpy as np

data = np.array([۱, ۲, ۳, ۴, ۵])
filtered_data = np.where(data > ۳, data * ۲, ۰)

print(filtered_data)  # خروجی: [۱, ۲, ۶, ۸, ۱۰]

در این مثال، np.where() مقادیر بزرگتر از ۳ را در data با دو برابر خود و بقیه مقادیر را با ۰ جایگزین می کند.

۲. ایجاد ماسک برای اعداد زوج:

Python
import numpy as np

data = np.random.randint(۱, ۱۰۰, ۱۰)
even_mask = np.where(data % ۲ == ۰)

print(even_mask)  # خروجی: (array([ 0,  2,  4,  6,  8]),)

در این مثال، np.where() یک ماسک ایجاد می کند که موقعیت اعداد زوج را در data نشان می دهد.

۳. انتخاب عناصر از دو آرایه بر اساس شرط:

Python
import numpy as np

temp = np.array([-۱, ۲, -۳, ۴])
labels = np.array(["سرد", "معتدل", "سرد", "گرم"])

result = np.where(temp > ۰, labels, "یخ زده")

print(result)  # خروجی: ['معتدل', 'گرم', 'سرد', 'گرم']

در این مثال، np.where() برچسب ها را از labels برای عناصر temp بزرگتر از ۰ و “یخ زده” را برای بقیه انتخاب می کند.

نکات مهم:

  • می توانید از np.where() برای انتخاب عناصر از آرایه های چند بعدی استفاده کنید.
  • می توانید از عملگرهای برداری NumPy در شرط np.where() استفاده کنید.
  • np.where() می تواند جایگزینی برای حلقه های for باشد و کد شما را کارآمدتر کند.

منابع:

۵/۵ ( ۱ امتیاز )
نمایش بیشتر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا