使用 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 中對應的元素確定。所需的輸出是:
C = np.array([[1], [2], [5]])
使用整數的解數組索引:
我們可以使用NumPy 的純整數陣列索引來取代廣播B:
A[np.arange(A.shape[0]),B.ravel()]
這裡, np.arange(A.shape[0]) 建立一個對應於A 中行數的索引數組,而 B.ravel() 將 B 展平為一維數組。透過組合這些,我們可以從 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中文網其他相關文章!