"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 다른 배열의 인덱스를 사용하여 2D Numpy 어레이에서 요소를 추출하는 방법은 무엇입니까?

다른 배열의 인덱스를 사용하여 2D Numpy 어레이에서 요소를 추출하는 방법은 무엇입니까?

2025-03-25에 게시되었습니다
검색:331

How to Extract Elements from a 2D NumPy Array Using Indices from Another Array?

문제 :

두 가지 numpy 배열을 고려합니다. b = np.array ([[1], [0], [1]]) # 색인 배열

목표는 A의 각 행에서 하나의 요소를 추출하는 것입니다. 여기서 특정 요소는 B의 해당 행에서 인덱스에 의해 지정됩니다.

c = np.array ([1], [2], [2], [2], [5]])

솔루션 :

A = np.array([[0, 1], [2, 3], [4, 5]])
B = np.array([[1], [0], [1]])  # Index array

1. 순수한 정수 배열 인덱싱 :

A = np.array([[0, 1], [2, 3], [4, 5]])
B = np.array([[1], [0], [1]])  # Index array
a [np.arange (a.shape [0]), b.ravel ()]

이 메소드는 Numpy의 정수 배열 인덱싱 기능을 사용하는 것입니다. A의 행에 해당하는 다양한 지수를 생성하고 평평한 B 배열과 결합하여 적절한 요소를 선택합니다.

2. 전환 및 np.choose :

np.choose (b.ravel (), a.t)
A = np.array([[0, 1], [2, 3], [4, 5]])
B = np.array([[1], [0], [1]])  # Index array

A = np.array([[0, 1], [2, 3], [4, 5]])
B = np.array([[1], [0], [1]])  # Index array
3.

3. 반복적 인 풀기 (Python> = 3.6) :

*a = a.t c = np.array ([*zip (*a)] [i] b.ravel ())

이 메소드는 반복적 인 포장을 사용하여 a를 행 목록으로 변환 한 다음 B의 A 기반 행을 사용하여 원하는 요소를 추출합니다.
A = np.array([[0, 1], [2, 3], [4, 5]])
B = np.array([[1], [0], [1]])  # Index array
4. 목록 이해 및 방송 :

[a [i] [j] for i, j in zip (range (a.shape [0]), b.rivel ())

[A[i][j] for i, j in zip(range(A.shape[0]), B.ravel())]

5. 멋진 인덱싱 (numpy> = 1.18) :

a [np.stack ([range (a.shape [0]), b.rivel ()], Axis = 1)
A = np.array([[0, 1], [2, 3], [4, 5]])
B = np.array([[1], [0], [1]])  # Index array

멋진 인덱싱은보다 효율적이고 압축 된 색인화를 허용합니다. 이 경우 행 지수 및 B 지수가 포함 된 2D 배열을 만듭니다.이 경우 가장 적절한 솔루션은 a.

에서 원하는 요소를 선택하는 데 사용할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3