[Python Numpy] numpy array 거꾸로 뒤집기 (how to reverse numpy array)
Python 분석과 프로그래밍/Python 데이터 전처리 2020. 2. 5. 23:09이번 포스팅에서는 Python numpy 의 배열 원소의 순서를 거꾸로 뒤집기 (how to reverse the python numpy array) 하는 두가지 방법을 소개하겠습니다. 1D array의 원소를 뒤집는 것은 간단한데요, 2D 이상의 다차원 배열(multi-dimensional array)의 경우 좀 복잡하므로 간단한 예를 들어 유형별로 설명을 해보겠습니다.
(1) x[::-1] 를 이용해서 배열 뒤집기 (mirror 반환하기)
(2) np.flip(x) 를 이용해서 배열 뒤집기
1 차원 numpy 배열을 뒤집기 (how to reverse 1D numpy array?) |
먼저 예제로 사용할 간단한 1차원 numpy 배열을 만들어보겠습니다.
import numpy as np # 1D array arr_1d = np.arange(5) arr_1d [Out]: array([0, 1, 2, 3, 4]) |
다음으로, 1차원 numpy 배열을 (1) x[::-1] 방법과, (2) np.flip(x) 방법을 이용하여 뒤집어보겠습니다.
(1) x[::-1] |
(2) np.flip(x) |
# returns a view in reversed order arr_1d[::-1] [Out]: array([4, 3, 2, 1, 0]) |
# 1D array in reversed order using np.flip() np.flip(arr_1d) [Out]: array([4, 3, 2, 1, 0]) |
2 차원 numpy 배열을 뒤집기 (how to reverse 2D numpy array?) |
2차원 이상의 numpy 배열 뒤집기는 말로 설명하기가 좀 어렵고 복잡합니다. 왜냐하면 배열의 차원(축, axis) 을 무엇으로 하느냐에 따라서 뒤집기의 기준과 기대하는 결과의 모습(reversed output) 달라지기 때문입니다. 따라서 아래에는 2차원 numpy 배열에 대해서 3가지 경우의 수에 대해서 각각 x[::-1] 과 np.flip(x) 을 사용한 방법을 소개하였으니 원하는 뒤집기 output 에 맞게 선택해서 사용하시기 바랍니다.
먼저 예제로 사용할 2차원 numpy 배열(2D numpy array)을 만들어보겠습니다.
import numpy as np # 2D array arr_2d = np.arange(10).reshape(2, 5) arr_2d
|
이제 2차원 numpy 배열을 한번 뒤집어 볼까요?
(2-1) axis = 0 기준으로 2차원 numpy 배열 뒤집기 (how to reverse numpy 2D array by axis=0)
(1) x[::-1] |
(2) np.flip(x, axis=0) |
# returns a view in reversed order by axis=0 arr_2d[::-1]
|
# reverse 2D array by axis 0 np.flip(arr_2d, axis=0) [Out]: array([[5, 6, 7, 8, 9],
[0, 1, 2, 3, 4]]) |
(2-2) axis = 1 기준으로 2차원 numpy 배열 뒤집기 (how to reverse numpy 2D array by axis=1)
(1) x[:, ::-1] |
(2) np.flip(x, axis=1) |
# returns a view of 2D array by axis=1 arr_2d[:, ::-1] [Out]: array([[4, 3, 2, 1, 0],
[9, 8, 7, 6, 5]]) |
# reverse 2D array by axis 1 np.flip(arr_2d, axis=1) [Out]: array([[4, 3, 2, 1, 0],
[9, 8, 7, 6, 5]]) |
(2-3) axis =0 & axis = 1 기준으로 2차원 numpy 배열 뒤집기 (revserse numpy 2D array by axis=0 &1)
(1) x[:, ::-1][::-1] |
(2) np.flip(x) |
# returns a view arr_2d[:, ::-1][::-1]
|
# 2D array np.flip(arr_2d) [Out]: array([[9, 8, 7, 6, 5],
[4, 3, 2, 1, 0]]) |
많은 도움이 되었기를 바랍니다.
이번 포스팅이 도움이 되었다면 아래의 '공감~'를 꾹 눌러주세요. :-)