Python numpy delete 함수 사용 방법 예제
파이썬의 넘파이 모듈에서 배열의 원하는 위치와 축 방향을 지정하여 원소를 삭제할 수 있는
np.delete 함수의 사용법을 정리해보도록 하겠습니다.
(참고로 이 글은 넘파이의 해당 함수 공식 문서 내용을 기반으로 작성되었습니다.)
기본적으로 delete 함수의 인자는 np.delete(배열, 인덱스, 축) 형태로 구성됩니다.
아래와 같은 2차원 배열 arr를 가정하여 값 제거를 진행해보도록 하겠습니다.
import numpy as np
arr = np.array([[1, 3, 5],
[2, 4, 6],
[3, 5, 7]])
np.delete axis별 값 제거 예시
먼저, axis = 0 방향으로 1번 인덱스(두 번째) 위치의 값들을 삭제한 예시는 다음과 같습니다.
np.delete(arr, 1, axis = 0)
# 결과
array([[1, 3, 5],
[3, 5, 7]])
두 번째 행 위치의 원소들이 삭제된 모습을 살펴볼 수 있었습니다.
이번에는 axis = 1 방향으로 2번 인덱스(세 번째) 위치의 값들을 제거한 예시를 살펴보겠습니다.
np.delete(arr, 2, axis = 1)
# 결과
array([[1, 3],
[2, 4],
[3, 5]])
세 번째 열 위치의 원소들이 제거된 모습을 확인할 수 있었습니다.
인덱스 여러 개 지정하여 삭제 예시
만일, 인덱스 여러 개를 동시에 지정하여 한 번에 제거를 하고싶은 경우에는
delete 함수 인덱스 인자 위치(두 번째 인자)에 원하는 인덱스 값 리스트를 넣어주시면 됩니다.
axis = 0 방향으로 0번과 2번 인덱스 값들을 동시에 삭제한 예시는 다음과 같습니다.
np.delete(arr, [0, 2], axis = 0)
# 결과
array([[2, 4, 6]])
만일, 슬라이싱 형태의 인덱스를 반영하고 싶다면 다음과 같이
np.s_[슬라이싱] 형태로 넣어주셔야 SyntaxError를 방지할 수 있습니다.
np.delete(arr, np.s_[:2], axis = 0)
# 결과
array([[3, 5, 7]])
axis = None으로 지정한 경우
만일, np.delete 함수의 axis 인자를 None으로 지정한다면
전체 원소들을 축 방향 순서대로 편 뒤 인덱스 번호에 해당하는 개별 값들을 제거한 결과를
반환하게 됩니다.
np.delete(arr, [0, 4, 5], axis = None)
# 결과
array([3, 5, 2, 3, 5, 7])
예시로 0, 4, 5번 인덱스를 axis = None 설정으로 삭제한 결과는 위와 같았습니다.
'Python > Numpy' 카테고리의 다른 글
[Numpy] 파이썬 배열 회전 함수 : np.rot90 (0) | 2022.08.08 |
---|---|
[Numpy] 넘파이 버전 확인 / 업그레이드 및 다운그레이드 (0) | 2022.06.23 |
파이썬에서 중복 없이 숫자 뽑기 / 리스트 랜덤 자료 추출 (0) | 2022.06.22 |