نمپی آرایه تکرار

جابجایی آرایه

جابجایی به معنای جابجایی عناصر به مرور است.

هنگامی که در numpy با آرایه‌های چند بعدی کار می‌کنیم، می‌توانیم از حلقه‌های پایه‌ای python برای انجام این کار استفاده کنیم.

اگر ما آرایه 1-D را جابجا کنیم، آن به مرور هر یک از عناصر را جابجا می‌کند.

مثال

عناصر زیر آرایه یک بعدی را جابجا کنید:

import numpy as np
arr = np.array([1, 2, 3])
برای x در arr:
  print(x)

اجرای مثال

آرایه 2-D را جابجا کنید

در آرایه 2-D، تمام ردیف‌ها را جابجا می‌کند.

مثال

عناصر زیر آرایه دو بعدی را جابجا کنید:

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
برای x در arr:
  print(x)

اجرای مثال

اگر ما یک آرایه n-D را جابجا کنیم، آن به مرور نویه n-1 را جابجا می‌کند.

برای بازگشت مقدار واقعی، مقیاس، باید به هر یک از ابعاد آرایه جابجا شویم.

مثال

هر یک از عناصر مقیاس‌های کوچک آرایه 2-D را جابجا کنید:

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
برای x در arr:
  برای y در x:
    print(y)

اجرای مثال

آرایه 3-D را جابجا کنید

در آرایه 3-D، تمام آرایه‌های 2-D را جابجا می‌کند.

مثال

عناصر زیر 3-D آرایه را جابجا کنید:

import numpy as np
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
برای x در arr:
  print(x)

اجرای مثال

برای بازگشت مقدار واقعی، مقیاس، باید به هر یک از ابعاد آرایه جابجا شویم.

مثال

به مقیاس‌های کوچک جابجا کنید:

import numpy as np
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
برای x در arr:
  برای y در x:
    برای z در y:
      print(z)

اجرای مثال

با استفاده از nditer() آرایه را جابجا کنید

تابع nditer() یک تابع کمکی است، که از جابجایی بسیار پایه‌ای تا جابجایی بسیار پیشرفته را پوشش می‌دهد. این تابع برخی از مشکلات پایه‌ای‌ای که در جابجایی با آن مواجه می‌شویم را حل می‌کند، اجازه دهید با مثال‌ها آن را معرفی کنیم.

برای جابجایی هر یک از عناصر مقیاس‌های کوچک

در حالیت جابجایی برای در حالیت جابجایی، برای جابجایی هر یک از مقیاس‌های آرایه، ما باید از n استفاده کنیم برای برای نوشتن یک حلقه، برای آرایه‌هایی با تعداد ابعاد بالا ممکن است دشوار باشد.

مثال

در حالیت جابجایی 3-D آرایه‌های زیر را مرور می‌کنیم:

import numpy as np
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
برای x در np.nditer(arr):
  print(x)

اجرای مثال

آرایه‌های متفاوت داده‌ها را در حالیت جابجایی

ما می‌توانیم از op_dtypes پارامتر، اور انتظار می‌رود که نوع داده را تغییر دهیم، تا در هنگام آنارش یعنی جابجایی عناصر نوع داده‌ها را تغییر دهیم.

NumPy داده‌های نوع داده‌ی عناصر را در محل تغییر نمی‌دهد (عناصر در آرایه قرار دارند)، بنابراین به فضای دیگری نیاز دارد تا این عمل را انجام دهد، این فضای اضافی به عنوان buffer شناخته می‌شود، بنابراین nditer() اگر بخواهیم آن را در flags=['buffered'].

مثال

با شکل یک رشته از آرایه‌ها جستجو می‌کنیم:

import numpy as np
arr = np.array([1, 2, 3])
برای x در np.nditer(arr, flags=['buffered'], op_dtypes=['S']):
  print(x)

اجرای مثال

با گام‌های مختلف تکرار کنیم

می‌توانیم از فیلتر استفاده کنیم و سپس به تکرار بپردازیم.

مثال

با هر بار گذشتن از یک عنصر اسکالار 2D آرایه، یک عنصر را بپردازیم:

import numpy as np
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
برای x در np.nditer(arr[:, ::2]):
  print(x)

اجرای مثال

با استفاده از ndenumerate() برشمرده شدن انجام دهیم

برشمرده شدن به معنای ذکر به ترتیب شماره‌ی چیزهاست.

گاهی اوقات، در حالی که در حال تکرار هستیم، به شماره‌ی مربوط به عناصر نیاز داریم، برای این موارد می‌توان از ndenumerate() روش.

مثال

عناصر 1D آرایه زیر را برشمرده‌ایم:

import numpy as np
arr = np.array([1, 2, 3])
برای idx, x در np.ndenumerate(arr):
  print(idx, x)

اجرای مثال

مثال

عناصر 2D آرایه زیر را برشمرده‌ایم:

import numpy as np
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
برای idx, x در np.ndenumerate(arr):
  print(idx, x)

اجرای مثال