본문 바로가기
Python Library/NumPy

[NumPy] numpy 원소 재배열

by goatlab 2021. 12. 30.
728x90
반응형
SMALL

numpy.flip(m, axis=None)


뒤집는 (flip) 함수이다. 영상 처리에서 flip 연산은 주로 2개이다. 수직축을 중심으로 뒤집는 vertical flip, 그리고 수평축을 중심으로 뒤집는 horizontal flip이 있다. 이 함수는 axis에 따라서 다양한 flip 연산이 구현되어 있다.

a = np.arange(1, 10).reshape((3, 3)) # array([[3, 2, 1], [6, 5, 4], [9, 8, 7]]) np.flip(a, 0) # array([[7, 8, 9], [4, 5, 6], [1, 2, 3]]) np.flipud(a) # array([[7, 8, 9], [4, 5, 6], [1, 2, 3]]) b = np.arange(1, 10).reshape(3, 3) # array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) np.flip(b, 1) # array([[3, 2, 1], [6, 5, 4], [9, 8, 7]]) np.fliplr(b) # array([[3, 2, 1], [6, 5, 4], [9, 8, 7]]) b[::-1] #array([[7, 8, 9], [4, 5, 6], [1, 2, 3]]) b[:, ::-1] # array([[3, 2, 1], [6, 5, 4], [9, 8, 7]])

 

numpy.roll(a, shift, axis=None)


넘파이 배열을 굴리는 (roll) 함수이다. 예를 들어 0, 1, 2, ..., 9로 이루어진 넘파이 배열이 있으면 roll 함수를 적용하여 9, 0, 1, ..., 8를 만들 수 있다. 맨 앞의 원소를 가장 뒤로 보내고 땡겨오거나, 맨 뒤의 원소를 가장 앞으로 보내고 밀 수 있으며 shift 함수에 의해서 몇 칸이나 밀지 결정할 수 있다. 또한, 다차원 배열에서는 어떤 axis를 기준으로 밀 것인지도 결정할 수 있다.

a = np.arange(10) np.roll(a, shift=0) # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) np.roll(a, shift=1) # array([9, 0, 1, 2, 3, 4, 5, 6, 7, 8]) np.roll(a, shift=2) # array([8, 9, 0, 1, 2, 3, 4, 5, 6, 7]) np.roll(a, shift=-1) # array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]) np.roll(a, shift=-2) # array([2, 3, 4, 5, 6, 7, 8, 9, 0, 1])

 

numpy.rot90(m, k=1, axes=(0, 1))


반시계 방향으로 원소를 몇 칸이나 옮길지 (k)에 따라서 값이 달라지는 함수이다. 시계방향으로 돌리고 싶다면 k를 -1로 설정하면 된다.

r = np.array([[1,2],[3,4]], int) # array([[1, 2], [3, 4]]) np.rot90(r) # array([[2, 4], [1, 3]]) np.rot90(r, k=-1) # array([[3, 1], [4, 2]])

 

728x90
반응형
LIST

'Python Library > NumPy' 카테고리의 다른 글

[NumPy] np.load 배열 확인  (0) 2022.05.30
[NumPy] numpy array 전체 출력  (0) 2021.12.31
[NumPy] numpy 원소 제거 및 추가  (0) 2021.12.29
[NumPy] asarray()  (0) 2021.12.27
[NumPy] numpy.ndarray  (0) 2021.12.27