Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

NumPy 数组迭代


迭代数组

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

在 NumPy 中,我们处理多维数组,可以使用 Python 的基本 for 循环来实现这一点。

如果我们迭代一个一维数组,它将逐个遍历每个元素。

示例

迭代以下一维数组的元素

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 维数组,它将逐个遍历 n-1 维。

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

示例

迭代二维数组的每个标量元素

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 循环中,要遍历数组的每个标量,我们需要使用 nfor 循环,对于维度非常高的数组来说,编写起来可能很困难。

示例

迭代以下三维数组

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 不会就地更改元素的数据类型(元素在数组中的位置),因此它需要一些额外的空间来执行此操作,这个额外空间被称为缓冲区,为了在 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)
动手试试 »

使用不同的步长迭代

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

示例

跳过一个元素,迭代二维数组的每个标量元素

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() 方法可以用于这些用例。

示例

枚举以下一维数组的元素

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)
动手试试 »


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.