HOWTO · NumPy

Python에서 NumPy 배열 뒤집는 방법

Python에서 NumPy 배열을 뒤집는 데 사용할 수있는 세 가지 주요 메서드, Basic Slicing 메서드, numpy.flipud() 함수 및 numpy.flip() 함수가 있습니다.

이 페이지의 내용

Python에서 NumPy 배열을 뒤집으려면 기본 슬라이싱 [::-1], numpy.flipud() 또는 numpy.flip()을 사용합니다. 슬라이싱은 1차원 배열을 간결하게 뒤집을 수 있으며 뷰를 반환합니다. numpy.flipud()는 0번 축을 따라 행을 뒤집고, numpy.flip()은 지정한 축이나 모든 축을 뒤집을 수 있습니다. 아래 예제에서 각 방법의 결과 차이를 확인할 수 있습니다.

Python에서 기본 슬라이싱으로 NumPy 배열 뒤집기

1차원 배열에서 array[::-1]은 간격을 -1로 지정해 끝에서 시작 방향으로 요소를 선택합니다. 다음 예제를 실행해 보세요:

이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.

import numpy as np

array = np.array([1, 2, 3, 4, 5])
reverse = array[::-1]
print(reverse)
[5 4 3 2 1]

이 슬라이스는 array와 같은 데이터를 참조하는 뷰이며, 독립적인 복사본을 만들지 않습니다. 따라서 reverse에 값을 대입하면 array의 해당 요소도 바뀝니다. 원본 값을 그대로 유지해야 한다면 array[::-1].copy()로 복사본을 만드세요. 이 방법은 뷰의 동작이 괜찮고 1차원 배열을 간결하게 뒤집고 싶을 때 유용합니다. 다차원 배열에 같은 표현식을 사용하면 첫 번째 축만 뒤집힙니다. 변경할 차원을 지정해야 한다면 축을 처리하는 함수를 사용하세요.

Python에서 numpy.flipud() 함수로 NumPy 배열 뒤집기

numpy.flipud()는 0번 축을 따라 배열을 뒤집습니다. 1차원 배열에서는 0번 축이 유일한 축이므로 값의 순서가 반대로 됩니다. 2차원 배열에서 0번 축은 행 방향입니다. 행의 순서는 바뀌지만 각 행 안의 값 순서는 그대로 유지됩니다. 자세한 내용은 NumPy numpy.flipud() 문서를 참고하세요.

이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.

import numpy as np

array = np.array([[1, 2], [3, 4]])
print(np.flipud(array))
[[3 4]
 [1 2]]

0번 축을 뒤집는 것이 목적이라면, 특히 행렬의 행 순서를 바꾸려는 경우 numpy.flipud()를 선택하세요. 1차원 배열에서는 슬라이싱 대신 읽기 쉬운 방법으로 사용할 수 있습니다. 다른 축을 뒤집으려면 numpy.flip()을 사용하고 해당 축을 명시하세요.

Python에서 numpy.flip() 함수로 NumPy 배열 뒤집기

numpy.flip()은 지정한 축을 따라 요소의 순서를 뒤집습니다. 2차원 배열에서 axis=1을 지정하면 각 행 안의 열 순서가 바뀝니다. axis를 생략하면 기본값은 None이며, 이 경우 모든 축이 뒤집힙니다. 따라서 행의 순서와 각 행 안의 요소 순서가 모두 바뀝니다. 배열을 하나의 시퀀스로 평탄화한 뒤 뒤집는 것은 아닙니다. 자세한 내용은 NumPy numpy.flip() 문서를 참고하세요.

이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.

import numpy as np

array = np.array([[1, 2], [3, 4]])
print(np.flip(array, axis=1))
print(np.flip(array))
[[2 1]
 [4 3]]
[[4 3]
 [2 1]]

행을 뒤집으려면 numpy.flip(array, axis=0)을, 2차원 배열에서 각 행의 열을 뒤집으려면 axis=1을 사용하세요. 모든 차원을 뒤집으려면 axis를 생략하면 됩니다. 1차원 배열에서는 axis를 생략해도 유일한 축이 뒤집힙니다. 간결한 1차원 표현식에는 슬라이싱을, 0번 축을 명확히 뒤집을 때는 numpy.flipud()를, 특정 축이나 모든 축을 지정해 뒤집을 때는 numpy.flip()을 선택하세요. 이 연산들은 차원별 요소 순서를 바꾸며 값을 정렬하거나 배열 모양을 바꾸지는 않습니다.