تکرار آرایه ها
تکرار به معنی گذر از عناصر یکی پس از دیگری است.
همانطور که با آرایه های چند بعدی در numpy سروکار داریم ، می توانیم این کار را با استفاده از for
حلقه اصلی پایتون انجام دهیم.
اگر روی یک آرایه 1-D تکرار کنیم ، تک تک عناصر را طی می کند.
مثال
عناصر آرایه 1-D زیر را تکرار کنید:
import numpy as np arr = np.array([1, 2, 3]) for x in arr: print(x)
تکرار آرایه های دو بعدی
در یک آرایه دو بعدی همه سطرها را طی می کند.
مثال
عناصر آرایه دو بعدی زیر را تکرار کنید:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) for x in arr: print(x)
اگر روی یک آرایه n -D تکرار کنیم ، بعد n -1 را یک به یک طی می کند.
برای بازگشت مقادیر واقعی ، مقیاس ها ، باید آرایه ها را در هر بعد تکرار کنیم.
مثال
هر عنصر مقیاس پذیر آرایه 2 بعدی را تکرار کنید:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) for x in arr: for y in x: print(y)
تکرار آرایه های سه بعدی
در یک آرایه سه بعدی ، تمام آرایه های دو بعدی را طی می کند.
مثال
عناصر آرایه سه بعدی زیر را تکرار کنید:
import numpy as np arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) for x in arr: print(x)
برای بازگشت مقادیر واقعی ، مقیاس ها ، باید آرایه ها را در هر بعد تکرار کنیم.
مثال
تا مقیاس ها را تکرار کنید:
import numpy as np arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) for x in arr: for y in x: for z in y: print(z)
تکرار آرایه ها با استفاده از nditer ()
این تابع nditer()
یک تابع کمکی است که می تواند از تکرارهای اولیه تا بسیار پیشرفته استفاده شود. این برنامه برخی از مسائل اساسی را که در تکرار با آن روبرو هستیم حل می کند ، اجازه دهید با مثال آن را مرور کنیم.
تكرار بر روي هر عنصر اسكالر
در for
حلقه های اصلی ، با تکرار هر مقیاس یک آرایه ، باید از n for
حلقه استفاده کنیم که نوشتن آن برای آرایه هایی با ابعاد بسیار دشوار است.
مثال
از طریق آرایه سه بعدی زیر تکرار کنید:
import numpy as np arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) for x in np.nditer(arr): print(x)
تکرار آرایه با انواع داده های مختلف
ما می توانیم از op_dtypes
آرگومان استفاده کنیم و نوع داده مورد انتظار را برای تغییر نوع داده عناصر هنگام تکرار ارسال کنیم.
NumPy نوع داده عنصر را در محل (جایی که عنصر در آرایه قرار دارد) تغییر نمی دهد ، بنابراین برای انجام این عمل به فضای دیگری نیاز دارد ، آن فضای اضافی بافر (Buffer) نامیده می شود و به منظور فعال سازی آن در nditer()
ما عبور می کنیم flags=['buffered']
.
مثال
از طریق آرایه به عنوان یک رشته تکرار کنید:
import numpy as np arr = np.array([1, 2, 3]) for x in np.nditer(arr, flags=['buffered'], op_dtypes=['S']): print(x)
تکرار با اندازه گام های مختلف
ما می توانیم از فیلترینگ و به دنبال تکرار استفاده کنیم.
مثال
هر عنصر مقیاس پذیر از آرایه دو بعدی را رد کنید 1 عنصر:
import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) for x in np.nditer(arr[:, ::2]): print(x)
تکرار شمارش شده با استفاده از ndenumerate ()
منظور از شمارش ، ذکر تعداد دنباله برخی از موارد یک به یک است.
گاهی اوقات هنگام تکرار به شاخص مربوط به عنصر نیاز داریم ، این ndenumerate()
روش می تواند برای موارد استفاده استفاده شود.
مثال
عناصر آرایه های 1 بعدی زیر را برشمارید:
import numpy as np arr = np.array([1, 2, 3]) for idx, x in np.ndenumerate(arr): print(idx, x)
مثال
عناصر آرایه دو بعدی زیر را برشمارید:
import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) for idx, x in np.ndenumerate(arr): print(idx, x)