NumPy Array Iteration
- Nakaraang Pahina NumPy Array Reshaping
- Susunod na Pahina NumPy Array Join
數組迭代
迭代意味著逐一遍歷元素。
當我們在 numpy 中處理多維數組時,可以使用 python 的基本 for 循環來完成此操作。
如果我們對 1-D 數組進行迭代,它將逐一遍歷每個元素。
Halimbawa
迭代以下一維數組的元素:
import numpy as np arr = np.array([1, 2, 3]) for x in arr: print(x)
迭代 2-D 數組
在 2-D 數組中,它將遍歷所有行。
Halimbawa
迭代以下二維數組的元素:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) for x in arr: print(x)
如果我們迭代一個 n-D 數組,它將逐一遍歷第 n-1 維。
如需返回實際值、標量,我們必須迭代每個維中的數組。
Halimbawa
迭代 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)
迭代 3-D 數組
在 3-D 數組中,它將遍歷所有 2-D 數組。
Halimbawa
迭代以下 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)
要返回實際值、標量,我們必須迭代每個維中的數組。
Halimbawa
迭代到標量:
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
循環,對於具有高維數的數組可能很難編寫。
Halimbawa
遍歷以下 3-D 數組:
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
參數,並傳遞期望的數據類型,以在迭代表達式中更改元素數據類型。
Hindi magbabago sa lugar ang NumPy ang uri ng datos ng mga elemento (ang mga elemento ay nasa array), kaya kailangan nito ng ilang ibang espasyo upang gawin ito, ang dagdag na espasyo na ito ay tinatawag na buffer, upang nditer()
Kung pinapapatupad ito sa flags=['buffered']
.
Halimbawa
I-enumulate ang array bilang string:
import numpy as np arr = np.array([1, 2, 3]) for x in np.nditer(arr, flags=['buffered'], op_dtypes=['S']) print(x)
I-iterate sa iba't ibang hakbang
Maaari naming gamitin ang pagsasalungat, pagkatapos ay iiterate.
Halimbawa
Bawasan ng 1 ang elemento sa bawat paglapit sa isang scalar element ng 2D array:
import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) for x in np.nditer(arr[:, ::2]): print(x)
I-enumulate sa pamamagitan ng ndenumerate() sa pag-iiterate
I-enumulate ay ang pagpapaalam ng isang bilang ng isang bagay sa isang hanay.
Minsan, kapag nag-iiterate kami, kailangan namin ang katugma ng index ng mga elemento, para sa mga kaso na ito, maaaring gamitin ang ndenumerate()
Paraan.
Halimbawa
I-enumulate ang mga elemento ng 1D array na ito:
import numpy as np arr = np.array([1, 2, 3]) for idx, x in np.ndenumerate(arr): print(idx, x)
Halimbawa
I-enumulate ang mga elemento ng 2D array na ito:
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)
- Nakaraang Pahina NumPy Array Reshaping
- Susunod na Pahina NumPy Array Join