پیمایش آرایه در numpy

پیمایش آرایه در numpy | ایتریتینگ | iterating3 دقیقه مطالعه

هدیه فنولوژی به شما

پیمایش آرایه یا iterate به این معناست که یکی یکی به تمام درایه‌‌‌‌‌‌‌های آرایه دستیابی پیدا کنیم. از آن جایی که ما در numpy با آرایه‌‌‌‌‌‌‌های یک یا چند بعدی روبه‌‌‌‌‌‌‌رو هستیم، برای پیمایش آرایه می‌‌‌‌‌‌‌توان از حلقه for استفاده کرد. در مثال زیر با پیمایش آرایه، تمامی عناصر آن چاپ می‌‌‌‌‌‌‌شوند:

پیمایش آرایه دو بعدی در numpy

اگر به روشی که در بالا ارائه شد، پیمایش را با استفاده از حلقه for برای آرایه دو بعدی اجرا کنیم، آرایه‌‌‌‌‌‌‌‌های یک بعدی موجود در آن چاپ می‌‌‌‌‌‌‌‌شوند:

اگر به این شیوه یک ماتریس n بعدی را پیمایش کنیم، تنها ماتریس‌‌‌‌‌‌‌‌‌های بزرگ داخل لایه اول چاپ می‌‌‌‌‌‌‌‌‌شوند نه تک تک عناصر اسکالر؛ اگر بخواهیم تک تک عناصر اسکالر را چاپ کنیم، باید از حلقه‌‌‌‌‌‌‌‌‌های تو در تو کمک بگیریم. به مثال زیر توجه کنید:

پیمایش آرایه سه بعدی در numpy

اگر برای پیمایش آرایه سه بعدی، تنها از یک حلقه for کمک بگیریم، آرایه‌‌‌‌‌‌‌‌‌‌های دو بعدی موجود در آن چاپ می‌‌‌‌‌‌‌‌‌‌شوند. به مثال زیر توجه کنید:

برای پیمایش تک تک عناصر آرایه سه بعدی، می‌‌‌‌‌‌‌‌‌‌‌توانید از سه حلقه for تو در تو استفاده کنید:

پیمایش آرایه با استفاده از متد ()nditer

با استفاده از متد nditer می‌‌‌‌‌‌‌‌‌‌‌‌توان انواع و اقسام پیمایش‌‌‌‌‌‌‌‌‌‌‌‌های پیشرفته را برای آرایه‌‌‌‌‌‌‌‌‌‌‌‌های numpy پیاده‌‌‌‌‌‌‌‌‌‌‌‌سازی کرد. این متد در واقع سختی‌‌‌‌‌‌‌‌‌‌‌‌های پیمایش با استفاده از حلقه for را حل می‌‌‌‌‌‌‌‌‌‌‌‌کند. در ادامه مهم‌‌‌‌‌‌‌‌‌‌‌‌ترین کاربردهای متد ()nditer را بررسی می‌‌‌‌‌‌‌‌‌‌‌‌کنیم:

پیمایش عناصر اسکالر آرایه با nditer

با استفاده از تکه کد ساده‌‌‌‌‌‌‌‌‌‌‌‌ی زیر، می‌‌‌‌‌‌‌‌‌‌‌‌توان تمام عناصر اسکالر آرایه با هر بعدی را پیمایش کرد:

تغییر دیتا تایپ همزمان با پیمایش آرایه با استفاده از تابع nditer

با استفاده از آرگومان op_dtype می‌‌‌‌‌‌‌‌‌‌‌‌‌توانیم همزمانی که آرایه را پیمایش می‌‌‌‌‌‌‌‌‌‌‌‌‌کنیم، دیتا تایپ عناصر موجود در آن را نیز تغییر دهیم. توجه کنید که این کار تغییری در آرایه‌‌‌‌‌‌‌‌‌‌‌‌‌ی اصلی به وجود نمی‌‌‌‌‌‌‌‌‌‌‌‌‌آورد؛ بنابراین باید عناصر جدید را در جایی ذخیره کنیم. به این حافظه، بافر می‌‌‌‌‌‌‌‌‌‌‌‌‌گوییم و با آرگومان flags به شیوه‌‌‌‌‌‌‌‌‌‌‌‌‌‌ی زیر آن را تعریف می‌‌‌‌‌‌‌‌‌‌‌‌‌‌کنیم:

پیمایش آرایه با گام دلخواه با استفاده از تابع nditer

با استفاده از روش‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌های توضیح داده شده در قسمت پیمایش آرایه‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌ها، به روش زیر می‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌توان برای پیمایش، گام مشخصی تعریف کرد:

آموزش numpy

پیمایش آرایه با استفاده از متد ()ndenumerate

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

قطعه کد زیر نیز نمونه‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌ی از پیمایش آرایه دو بعدی است که ایندکس هر عنصر نیز پیمایش می‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌شود:
تیم محتوایی فنولوژی
تیم محتوایی فنولوژی
گروهی از متخصصان حوزه‌های مختلف
از یادگیری تا استخدام با دوره‌های متخصص سون‌لرن
عضویت
اطلاع از
0 دیدگاه‌ها
بازخورد در متن
دیدن همه دیدگاه‌ها

فنولوژی را در شبکه‌های اجتماعی دنبال کنید

©۲۰۲۰ – کلیه حقوق مادی و معنوی متعلق به فنولوژی است.

عضویت در خبرنامه فنولوژی

جذاب‌ترین مطالب سایت را ماهانه دریافت کنید!

خبرنامه