문제 :
두 가지 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 arraya [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 array3.
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 array4. 목록 이해 및 방송 :
[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