NumPy 배열을 사용한 인덱스 추출
NumPy에서 다차원 배열로 작업할 때 인덱스를 기반으로 특정 요소를 추출해야 하는 경우가 많습니다. 이와 관련하여 배열(B)이 다른 배열(A)의 두 번째 차원에 대한 인덱스 역할을 하는 특정 시나리오가 발생할 수 있습니다.
두 개의 배열 A와 B가 있는 예를 생각해 보세요.
A = np.array([[0,1], [2,3], [4,5]]) B = np.array([[1], [0], [1]], dtype='int')
우리의 목표는 A의 각 행에서 하나의 요소를 추출하는 것입니다. 여기서 요소 인덱스는 B의 해당 요소에 의해 결정됩니다. 원하는 출력 is:
C = np.array([[1], [2], [5]])
정수 배열 인덱싱을 사용한 솔루션:
B를 브로드캐스팅하는 대신 NumPy의 순수 정수 배열 인덱싱을 사용할 수 있습니다.
A[np.arange(A.shape[0]),B.ravel()]
여기서 np.arange(A.shape[0])은 다음의 배열을 생성합니다. A의 행 수에 해당하는 인덱스이고 B.ravel()은 B를 1D 배열로 평면화합니다. 이들을 결합하여 A에서 적절한 요소를 추출할 수 있습니다.
샘플 실행:
print(A) print(B) print(A[np.arange(A.shape[0]),B.ravel()])
출력:
[[0 1] [2 3] [4 5]] [[1] [0] [1]] [1 2 5]
이 접근 방식은 추출 문제에 대한 간결하고 효율적인 솔루션을 제공합니다.
위 내용은 정수 배열 인덱싱을 사용하여 NumPy 배열에서 요소를 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!