選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP 如何 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 網路安全 資料科學
     ❯   

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 迴圈中,迭代陣列的每個標量需要使用 *n* 個 for 迴圈,這對於維度非常高的陣列來說很難編寫。

示例

迭代以下三維陣列

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)
自己動手試一試 »

以不同的步長迭代

我們可以使用篩選器,然後進行迭代。

示例

迭代二維陣列的每個標量元素,跳過 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)
自己動手試一試 »

使用 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)
自己動手試一試 »


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援