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
,obj
및axis
라는 세 개의 매개 변수를 허용하고 NumPy 배열을 출력합니다. arr
는 요소를 삭제하려는 NumPy 배열입니다. obj
는 정수 목록입니다. 이 숫자는 배열에서 삭제해야하는 요소의 인덱스를 나타냅니다. 마지막으로axis
는 선택적 인수입니다. axis
는obj
의 대상 요소가 삭제되어야하는 축을 나타냅니다. 이 매개 변수에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()
함수를 사용하여 요소 제거
이번에는NumPy
의setdiff1d()
함수를 사용합니다. 이 함수는ar1
,ar2
및assume_unique
의 세 가지 매개 변수를 허용합니다. ar1
및ar2
는 두 개의 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 배열입니다.
이 기능에 대한 자세한 내용은 여기에서이 기능의 공식 문서를 참조하십시오.