تنقل مجموعات NumPy

تكرار المصفوفة

التكرار يعني تتبع العناصر بشكل تدريجي.

عندما نتعامل مع مصفوفات متعددة الأبعاد في numpy، يمكننا استخدام دورات python الأساسية للقيام بذلك.

إذا كنا نتكرر مصفوفة 1-D، سيقوم بتتبع كل عنصر بشكل تدريجي.

Example

تكرار العناصر في المصفوفة الواحدة الأبعاد التالية:

import numpy as np
arr = np.array([1, 2, 3])
للفورات في arr:
  print(x)

Run Instance

تكرار المصفوفة الثنائية الأبعاد

في المصفوفة الثنائية الأبعاد، سيقوم بتتبع جميع الصفوف.

Example

تكرار العناصر في المصفوفة الثنائية الأبعاد التالية:

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
للفورات في arr:
  print(x)

Run Instance

إذا كنا نتكرر مصفوفة n-D، سيقوم بتتبع مقياس n-1 بشكل تدريجي.

لإرجاع القيمة الفعلية، العنصر النسبي، يجب علينا تكرار كل مصفوفة في كل مقياس.

Example

تكرار كل عنصر نسبي في المصفوفة الثنائية الأبعاد:

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
للفورات في arr:
  للفورات في x:
    print(y)

Run Instance

تكرار المصفوفة الثلاثية الأبعاد

في المصفوفة الثلاثية الأبعاد، سيقوم بتتبع جميع المصفوفات الثنائية الأبعاد.

Example

تكرار العناصر في المصفوفة الثلاثية الأبعاد التالية:

import numpy as np
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
للفورات في arr:
  print(x)

Run Instance

لإرجاع القيمة الفعلية، العنصر النسبي، يجب علينا تكرار كل مصفوفة في كل مقياس.

Example

تكرار إلى العنصر النسبي:

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

Run Instance

استخدام nditer() لتكرار المصفوفة

وظيفة nditer() هي وظيفة مساعدة، يمكن استخدامها من التكرار البسيط إلى التكرار المتقدم. تتجاوز بعض المشاكل الأساسية التي نواجهها في التكرار، ونقوم بشرحها من خلال أمثلة.

تكرار كل عنصر في العنصر النسبي

في الأساس للفورات في الدورة، نقوم بتكرار كل عنصر في المصفوفة، نحتاج إلى استخدام n للفورات الدورات، قد تكون صعبة للكتابة بالنسبة لمصفوفات ذات أبعاد عالية.

Example

نقوم بتتبع النسق التالي من المصفوفة الثلاثية الأبعاد:

import numpy as np
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
للفورات في np.nditer(arr):
  print(x)

Run Instance

تكرار مصفوفات بيانات مختلفة

يمكننا استخدام op_dtypes المعدل، ونقوم بتحديد نوع البيانات المتوقع، لتغيير نوع بيانات العنصر أثناء التكرار.

NumPy does not change the data type of elements in place (elements are located in the array), so it needs some other space to perform this operation, this additional space is called buffer, in order to nditer() Enable it in the middle, we pass parameters flags=['buffered'].

Example

Traverse the array in string form:

import numpy as np
arr = np.array([1, 2, 3])
for x in np.nditer(arr, flags=['buffered'], op_dtypes=['S'])
  print(x)

Run Instance

Iterate with different step lengths

We can use filtering and then iterate.

Example

Skip 1 element every time a scalar element of the 2D array is traversed:

import numpy as np
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
for x in np.nditer(arr[:, ::2]):
  print(x)

Run Instance

Use ndenumerate() for enumeration iteration

Enumeration refers to mentioning the serial number of things one by one.

Sometimes, when iterating, we need the corresponding index of the element, for these cases, we can use ndenumerate() Method.

Example

Enumerate the elements of the following 1D array:

import numpy as np
arr = np.array([1, 2, 3])
for idx, x in np.ndenumerate(arr):
  print(idx, x)

Run Instance

Example

Enumerate the elements of the following 2D array:

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)

Run Instance