首頁 > 後端開發 > Python教學 > 如何用另一個 NumPy 陣列索引一個 NumPy 陣列:高階索引與線性索引?

如何用另一個 NumPy 陣列索引一個 NumPy 陣列:高階索引與線性索引?

Patricia Arquette
發布: 2024-11-10 13:23:03
原創
479 人瀏覽過

How to Index One NumPy Array by Another: Advanced Indexing vs. Linear Indexing?

在 NumPy 中用另一個數組索引

在科學計算中,操作多維數組是一項常見任務。 NumPy 的高級索引功能為複雜的索引操作提供了強大的工具,可以輕鬆地根據儲存在另一個數組中的索引值從一個數組中提取資料。

考慮一個任意值的矩陣 A以及一個包含 A 中元素索引的矩陣 B。任務是從 B 指向的 A 中選擇值,產生矩陣 C

實現此目的的一種方法是透過NumPy先進的索引:

C = A[np.arange(A.shape[0])[:, None], B]
登入後複製
  • np.arange(A.shape[0])[:, None ]:A,每一列代表相同的行索引。
  • [:, None]: 將陣列擴展為具有額外維度的二維數組,以與 B 對齊。
此方法可以在大型數組上有效運行,無需循環。

線性索引為此提供了另一種方法操作:

m, n = A.shape
C = np.take(A, B + n * np.arange(m)[:, None])
登入後複製
  • m, n = A.shape: 儲存A.
  • B 的尺寸n * np.arange(m)[:, None]: 計算中每個元素的展平索引CB 中的索引和行號。
  • np.take(A, ...): 從下列位置擷取元素A 使用扁平索引。
高級索引和線性索引提供了在 NumPy 中用另一個數組索引一個數組的有效方法。

以上是如何用另一個 NumPy 陣列索引一個 NumPy 陣列:高階索引與線性索引?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板