NumPy 배열 반복

배열 반복

반복은 요소를 차례대로 순회하는 것을 의미합니다.

numpy에서 다차원 배열을 처리할 때는 python의 기본 for 반복을 사용할 수 있습니다.

1-D 배열을 반복하면 각 요소를 차례대로 순회합니다.

예제

다음 1-D 배열의 요소를 반복합니다:

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

실행 예제

2-D 배열을 반복합니다

2-D 배열에서는 모든 행을 순회합니다.

예제

다음 2-D 배열의 요소를 반복합니다:

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

실행 예제

n-D 배열을 반복하면, n-1 차원을 차례대로 순회합니다.

실제 값, 스칼라를 반환하려면 각 차원의 배열을 반복해야 합니다.

예제

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 배열을 순회합니다.

예제

다음 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)

실행 예제

실제 값, 스칼라를 반환하려면 각 차원의 배열을 반복해야 합니다.

예제

스칼라까지 반복합니다:

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 반복은 고차원 배열에 대해 코드를 작성하는 것이 어려울 수 있습니다.

예제

다음 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 파라미터를 전달하고, 요청한 데이터 타입을 통해 반복 중에 요소의 데이터 타입을 변경할 수 있습니다.

NumPy는 요소가 배열 내에 위치하므로 데이터 타입을就地 변경하지 않습니다. 따라서 이 작업을 수행하기 위해 추가 공간이 필요하며, 이 추가 공간을 buffer라고 합니다. 이를}} 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)

실행 예제

다른 단계로 반복

필터링을 사용한 후 반복할 수 있습니다.

예제

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)

실행 예제

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)

실행 예제