تدوین آرایه‌های NumPy

تکرار آرایه

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

هنگامی که با آرایه‌های چند بعدی در 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)

اجرای مثال