NumPy Filter Array
فیلتر کردن آرایهها
گرفتن برخی عناصر از یک آرایه و ایجاد یک آرایه جدید بوسیله آنها را فیلتر کردن میگویند.
در NumPy فیلتر کردن بر اساس یک لیست ایندکس بولین (boolean index list) انجام میگیرد. منظور از لیست ایندکس بولین لیستی از ایندکسهای مربوطه در آرایه به صورت بولین است.
اگر مقدار در یک ایندکس True
باشد، آن مقدار در آرایه فیلتر شده وجود دارد و اگر مقدار در آن ایندکس False
باشد آن عنصر از آرایه فیلتر شده خارج میشود.
در کد زیر یک آرایه جدید را از عناصر ایندکسهای صفر و ۲ آرایه موجود ایجاد میکنیم.
چنانکه انتظار داشتیم خروجی کد بالا شامل اعداد ۴۱ و ۴۳ مربوط به ایندکسهای صفر و ۲ است.
ساختن آرایه فیلتر
در کد بالا مقادیر True
و False
به صورت دستی وارد شدند اصطلاحا hard-coded انجام دادیم. روش رایج برای ایجاد یک آرایه فیلتر بر اساس شرطها است. برای نمونه در کد زیر تنها مقادیری که بیشتر از ۴۲ هستند را برمیگردانیم.
ایجاد فیلتر به صورت مستقیم از آرایه
مثال بالا یک کار بسیار رایج در NumPy است و به همین جهت NumPy یک راه زیبا برای راحتتر کردن آن در نظر گرفته است.
در کد زیر همان مثال بالا را به نحوی که NumPy مسیر را برای ما هموار کرده است انجام میدهیم.
در مثالی دیگر آرایهای جدید را بر اساس آرایه موجود میسازیم به گونهای که تنها اعداد زوج برگردانده شوند.