首頁 >後端開發 >Python教學 >如何使用整數數組索引從 NumPy 數組中提取元素?

如何使用整數數組索引從 NumPy 數組中提取元素?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-12 18:04:02787瀏覽

How to Extract Elements from a NumPy Array Using Integer Array Indexing?

使用 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn