np.where() در NumPy: مثال جامع و توضیح
np.where() یک تابع قدرتمند در NumPy است که به شما امکان می دهد عناصر را در یک آرایه بر اساس یک شرط انتخاب کنید.
این تابع سه آرگومان دارد:
- شرط: یک آرایه منطقی که شرط را برای انتخاب عناصر مشخص می کند.
- x: یک آرایه حاوی مقادیر برای عناصر True در شرط.
- y: یک آرایه حاوی مقادیر برای عناصر False در شرط.
نحوه عملکرد:
np.where()از شرط برای تعیین اینکه کدام عناصر درxیاyاستفاده شوند، عبور می کند.- برای هر عنصر در شرط:
- اگر شرط
Trueباشد، مقدار مربوطه ازxدر آرایه خروجی قرار می گیرد. - اگر شرط
Falseباشد، مقدار مربوطه ازyدر آرایه خروجی قرار می گیرد.
- اگر شرط
مزایای استفاده از np.where():
- انتخاب عناصر بر اساس معیارهای پیچیده: می توانید از هر شرط منطقی برای انتخاب عناصر استفاده کنید، حتی اگر شامل چندین معیار یا توابع پیچیده باشد.
- ایجاد آرایه های جدید: می توانید از
np.where()برای ایجاد آرایه های جدید بر اساس یک شرط استفاده کنید. این برای جایگزینی مقادیر، ایجاد ماسک ها یا استخراج زیرمجموعه های خاص از داده ها مفید است. - کد خواناتر: استفاده از
np.where()می تواند کد شما را خواناتر کند، زیرا به طور واضح بیان می کند که چه عناصری بر اساس چه شرایطی انتخاب می شوند.
مثال های کاربردی:
1. جایگزینی مقادیر بر اساس شرط:
Python
import numpy as np
data = np.array([1, 2, 3, 4, 5])
filtered_data = np.where(data > 3, data * 2, 0)
print(filtered_data) # خروجی: [1, 2, 6, 8, 10]
در این مثال، np.where() مقادیر بزرگتر از 3 را در data با دو برابر خود و بقیه مقادیر را با 0 جایگزین می کند.
2. ایجاد ماسک برای اعداد زوج:
Python
import numpy as np
data = np.random.randint(1, 100, 10)
even_mask = np.where(data % 2 == 0)
print(even_mask) # خروجی: (array([ 0, 2, 4, 6, 8]),)
در این مثال، np.where() یک ماسک ایجاد می کند که موقعیت اعداد زوج را در data نشان می دهد.
3. انتخاب عناصر از دو آرایه بر اساس شرط:
Python
import numpy as np
temp = np.array([-1, 2, -3, 4])
labels = np.array(["سرد", "معتدل", "سرد", "گرم"])
result = np.where(temp > 0, labels, "یخ زده")
print(result) # خروجی: ['معتدل', 'گرم', 'سرد', 'گرم']
در این مثال، np.where() برچسب ها را از labels برای عناصر temp بزرگتر از 0 و “یخ زده” را برای بقیه انتخاب می کند.
نکات مهم:
- می توانید از
np.where()برای انتخاب عناصر از آرایه های چند بعدی استفاده کنید. - می توانید از عملگرهای برداری NumPy در شرط
np.where()استفاده کنید. np.where()می تواند جایگزینی برای حلقه هایforباشد و کد شما را کارآمدتر کند.
منابع:



