在 NumPy 中索引多個數組
在 NumPy 中,超出一維數組的索引需要高級技術。一種情況是根據另一個陣列的值對一個陣列進行索引,稱為多維索引。
考慮任意值的矩陣A:
array([[ 2, 4, 5, 3], [ 1, 6, 8, 9], [ 8, 7, 0, 2]])
和矩陣B 包含元素索引A:
array([[0, 0, 1, 2], [0, 3, 2, 1], [3, 2, 1, 0]])
要用B中的索引從A 中選擇值,您可以使用NumPy 的高級索引:
A[np.arange(A.shape[0])[:,None],B]
這種索引方法將行索引(0, 1, 2) 與索引結合B中指定。
或者,您可以使用線性索引:
m,n = A.shape out = np.take(A,B + n*np.arange(m)[:,None])
這裡,m和n代表A中的行數和列數分別是。 np.take() 根據 B 和 n 總和乘以行索引範圍產生的線性索引從 A 中提取元素。
使用技術,輸出將是:
[[2, 2, 4, 5], [1, 9, 8, 6], [2, 0, 7, 8]]
此索引方法提供了基於多個存取和操作元素的靈活性標準,增強了NumPy 數組在複雜資料處理場景中的多功能性。
以上是如何在 NumPy 中索引多個數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!