NumPy 배열 반복
배열 반복
반복은 요소를 하나씩 통과하는 것을 의미합니다.
numpy에서 다차원 배열을 다룰 때
for
파이썬의 기본 루프를 사용하여 이를 수행할 수 있습니다.
1차원 배열을 반복하면 각 요소를 하나씩 통과합니다.
예시
다음 1차원 배열의 요소를 반복합니다.
import numpy as np
arr = np.array([1, 2, 3])
for x in arr:
print(x)
2차원 배열 반복하기
2차원 배열에서는 모든 행을 통과합니다.
예시
다음 2차원 배열의 요소를 반복합니다.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
for x
in arr:
print(x)
n -D 배열 을 반복하면 n-1 차원을 하나씩 통과합니다.
실제 값인 스칼라를 반환하려면 각 차원에서 배열을 반복해야 합니다.
예시
2차원 배열의 각 스칼라 요소에 대해 반복합니다.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
for x
in arr:
for y in x:
print(y)
3차원 배열 반복하기
3차원 배열에서는 모든 2차원 배열을 통과합니다.
예시
다음 3차원 배열의 요소를 반복합니다.
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()
는 아주 기본적인 반복부터 매우 고급 반복까지 사용할 수 있는 도우미 함수입니다. 반복 작업에서 직면하는 몇 가지 기본 문제를 해결하고 예제를 통해 살펴보겠습니다.
각 스칼라 요소에 대한 반복
기본 루프에서 배열의 각 스칼라를 반복 하는 것은 차원이 매우 높은 배열에 대해 작성하기 어려울 수 있는 n개의for
루프 를 사용해야
합니다.
for
예시
다음 3차원 배열을 반복합니다.
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개의 요소를 건너뛰는 2D 배열의 모든 스칼라 요소를 반복합니다.
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()
방법은 이러한 사용 사례에 사용할 수 있습니다.
예시
다음 1D 배열 요소를 열거합니다.
import numpy as np
arr = np.array([1, 2, 3])
for idx, x in
np.ndenumerate(arr):
print(idx, x)
예시
다음 2D 배열 요소를 열거합니다.
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)