NumPy의 배열에서 요소 제거

Vaibhav Vaibhav 2023년10월10일
  1. numpy.delete()함수를 사용하여 요소 제거
  2. numpy.setdiff1d()함수를 사용하여 요소 제거
NumPy의 배열에서 요소 제거

이 기사에서는 NumPy 배열에서 요소를 제거하는 두 가지 방법에 대해 알아 봅니다.

numpy.delete()함수를 사용하여 요소 제거

다음 코드를 참조하십시오.

import numpy as np

myArray = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
indexes = [3, 5, 7]
modifiedArray = np.delete(myArray, indexes)
print(modifiedArray)

출력:

[ 1  2  3  5  7  9 10]

위의 코드에서는NumPy라이브러리의delete()함수를 사용합니다. delete()함수는arr,objaxis라는 세 개의 매개 변수를 허용하고 NumPy 배열을 출력합니다. arr는 요소를 삭제하려는 NumPy 배열입니다. obj는 정수 목록입니다. 이 숫자는 배열에서 삭제해야하는 요소의 인덱스를 나타냅니다. 마지막으로axis는 선택적 인수입니다. axisobj의 대상 요소가 삭제되어야하는 축을 나타냅니다. 이 매개 변수에None값이 지정되면arr가 평면화되고이 평면화 된 배열에서 삭제가 수행됩니다.

평소와 같이arr범위 밖에있는 색인이이 메소드에 제공되면IndexError예외가 발생합니다.

import numpy as np

myArray = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
indexes = [3, 5, 7, 34]
modifiedArray = np.delete(myArray, indexes)
print(modifiedArray)

출력:

Traceback (most recent call last):
  File "<string>", line 5, in <module>
File "<__array_function__ internals>", line 5, in delete
  File "/path/to/library/numpy/lib/function_base.py", line 4480, in delete
keep[obj,] = False
IndexError: index 34 is out of bounds for axis 0 with size 10

이 기능에 대한 자세한 내용은이 기능의 공식 문서 여기를 참조하십시오.

다음은 다차원 NumPy 배열에서 삭제하는 두 가지 예입니다.

import numpy as np

myArray = np.array([[1, 2, 3, 4, 5], [11, 12, 13, 14, 15], [21, 22, 23, 24, 25]])
modifiedArray = np.delete(myArray, [1, 2], 1)
print(modifiedArray)

출력:

[[ 1  4  5]
 [11 14 15]
 [21 24 25]]

매개 변수axis의 값으로None을 사용합니다.

import numpy as np

myArray = np.array([[1, 2, 3, 4, 5], [11, 12, 13, 14, 15], [21, 22, 23, 24, 25]])
modifiedArray = np.delete(myArray, [1, 2], None)
print(modifiedArray)

출력:

[ 1  4  5 11 12 13 14 15 21 22 23 24 25]

numpy.setdiff1d()함수를 사용하여 요소 제거

이번에는NumPysetdiff1d()함수를 사용합니다. 이 함수는ar1,ar2assume_unique의 세 가지 매개 변수를 허용합니다. ar1ar2는 두 개의 NumPy 배열입니다. 그리고assume_unique는 선택적 부울 인수입니다. 기본값은False입니다. True이면 두 입력 배열이 고유 한 것으로 간주되며이 가정은 계산 시간을 단축 할 수 있습니다.

setdiff1d()ar2에없는ar1의 고유 한 값을 반환합니다.

다음 코드를 참조하십시오.

import numpy as np

myArray = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
indexes = [3, 5, 7]
modifiedArray = np.setdiff1d(myArray, indexes)
print(modifiedArray)

출력:

[ 1  2  4  6  8  9 10]

numpy.delete()와 달리 두 배열은 모두 인덱스가 아닌 실제 요소가있는 NumPy 배열입니다.

이 기능에 대한 자세한 내용은 여기에서이 기능의 공식 문서를 참조하십시오.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.