np.where()
در NumPy: مثال جامع و توضیح
np.where()
یک تابع قدرتمند در NumPy است که به شما امکان می دهد عناصر را در یک آرایه بر اساس یک شرط انتخاب کنید.
این تابع سه آرگومان دارد:
- شرط: یک آرایه منطقی که شرط را برای انتخاب عناصر مشخص می کند.
- x: یک آرایه حاوی مقادیر برای عناصر True در شرط.
- 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
باشد و کد شما را کارآمدتر کند.
منابع: