ایندکس منطقی

ایندکس منطقی در NumPy: راهنمای جامع

ایندکس‌گذاری منطقی (Logical Indexing) یکی از قوی‌ترین تکنیک‌ها در کتابخانه NumPy پایتون است که امکان فیلتر کردن و انتخاب داده‌ها را بر اساس شرایط منطقی فراهم می‌کند. این روش به‌ویژه هنگام کار با آرایه‌های بزرگ بسیار کارآمد است.

مفهوم پایه ایندکس منطقی

ایندکس منطقی به شما امکان می‌دهد عناصر یک آرایه را بر اساس یک ماسک بولی (Boolean Mask) انتخاب کنید. این ماسک یک آرایه بولی با ابعاد مشابه آرایه اصلی است که مشخص می‌کند هر عنصر باید انتخاب شود (True) یا خیر (False).

مثال ساده: اگر آرایه‌ای از اعداد داشته باشیم و بخواهیم فقط اعداد بزرگتر از 5 را انتخاب کنیم، ایندکس منطقی بهترین راه حل است.

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

در ادامه چند مثال عملی از ایندکس منطقی را بررسی می‌کنیم:

شرح عملیات کد نمونه
انتخاب عناصر بزرگتر از مقدار مشخص arr[arr > 5]
انتخاب عناصر بین دو مقدار arr[(arr > 2) & (arr < 8)]
انتخاب عناصر با شرط OR arr[(arr == 3) | (arr == 7)]

نکات کلیدی در استفاده از ایندکس منطقی

  • عملگرهای بولی: در NumPy باید از & (AND)، | (OR) و ~ (NOT) استفاده کنید، نه کلمات and/or پایتون
  • پرانتزگذاری: شرط‌های مرکب باید در پرانتز قرار گیرند
  • کارایی: ایندکس منطقی معمولاً سریع‌تر از حلقه‌های پایتون است
  • تغییر مقادیر: می‌توانید با ترکیب ایندکس منطقی و انتساب، مقادیر را تغییر دهید

برای یادگیری عمیق‌تر این موضوع، می‌توانید اینجا را انتخاب کنید تا به آموزش کامل دسترسی پیدا کنید.

مزایای ایندکس منطقی

  1. خوانایی کد را افزایش می‌دهد
  2. نیاز به حلقه‌های صریح را کاهش می‌دهد
  3. از بهینه‌سازی‌های داخلی NumPy استفاده می‌کند
  4. امکان کار با داده‌های پیچیده را فراهم می‌سازد

در نهایت، ایندکس منطقی ابزاری ضروری برای هر برنامه‌نویسی است که با داده‌های عددی در پایتون کار می‌کند. با تسلط بر این تکنیک، می‌توانید کدهای کارآمدتر و خوانا‌تر بنویسید.