Iteration ya Array ya NumPy

数组迭代

迭代意味着逐一遍历元素。

当我们在 numpy 中处理多维数组时,可以使用 python 的基本 for 循环来完成此操作。

如果我们对 1-D 数组进行迭代,它将逐一遍历每个元素。

Mfano

迭代以下一维数组的元素:

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

Kuagiza Mfano

迭代 2-D 数组

在 2-D 数组中,它将遍历所有行。

Mfano

迭代以下二维数组的元素:

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

Kuagiza Mfano

如果我们迭代一个 n-D 数组,它将逐一遍历第 n-1 维。

如需返回实际值、标量,我们必须迭代每个维中的数组。

Mfano

迭代 2-D 数组的每个标量元素:

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

Kuagiza Mfano

迭代 3-D 数组

在 3-D 数组中,它将遍历所有 2-D 数组。

Mfano

迭代以下 3-D 数组的元素:

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)

Kuagiza Mfano

要返回实际值、标量,我们必须迭代每个维中的数组。

Mfano

迭代到标量:

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)

Kuagiza Mfano

使用 nditer() 迭代数组

函数 nditer() 是一个辅助函数,从非常基本的迭代到非常高级的迭代都可以使用。它解决了我们在迭代中面临的一些基本问题,让我们通过例子进行介绍。

kumtaarifu kwa kipimo cha data zaidi kwa kusoma kwa kipimo cha data zaidi

kwa kumtaarifu kwa kipimo cha data zaidi kwa kwa kumtaarifu kwa kipimo cha data zaidi, tumezaa kusoma kwa kipimo cha data zaidi kwa kusoma kwa kipimo cha data zaidi. kwa kumtaarifu kwa kipimo cha data zaidi inaweza kuwa kwa kusoma kwa kuzungumza kwa kipimo cha data zaidi.

Mfano

kumtaarifu kwa 3-D array:

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

Kuagiza Mfano

kumtaarifu kwa kipimo cha data zaidi

Wenyezea kuwa na op_dtypes 参数,naikaonesha data type, kwa kusoma kila elementi ya data kwa kubadilisha spesi ya data kwenye msaada.

NumPy 不会就地更改元素的数据类型(元素位于数组中),因此它需要一些其他空间来执行此操作,该额外空间称为 buffer,为了在 nditer() 中启用它,我们传参 flags=['buffered']

Mfano

以字符串形式遍历数组:

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

Kuagiza Mfano

以不同的步长迭代

我们可以使用过滤,然后进行迭代。

Mfano

每遍历 2D 数组的一个标量元素,跳过 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)

Kuagiza Mfano

Kusoma kwa ndenumerate() kwa kusoma

Kueneza ni kueleza kila kitu kwa kumieleza kwa mifano ya kumieleza.

Mwana, tupeleka kwa kusoma kwa mifano ya kusoma kwa kusoma, kwa mifano hizi inaweza kutumika ndenumerate() Method.

Mfano

Kueneza elementi za jukwaa 1D hizo:

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

Kuagiza Mfano

Mfano

Kueneza elementi za jukwaa 2D hizo:

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)

Kuagiza Mfano