如何使用「np.ix_」為具有兩個索引清單的 2D NumPy 陣列建立索引?

Linda Hamilton
發布: 2024-10-26 08:27:30
原創
929 人瀏覽過

How to Index a 2D NumPy Array with Two Lists of Indices Using `np.ix_`?

使用2 個索引清單對2D Numpy 陣列建立索引

問題陳述

使用下列方法對2D Numpy數組建立索引兩個單獨的索引列表並不像使用單一索引列表那麼簡單。在處理大型數組時,這可能具有挑戰性,因為它需要廣播和重塑數組才能實現所需的索引選擇。

使用np.ix_ 和廣播的解決方案

Numpy 中的np.ix_ 函數可用於建立索引數組的元組,這些索引數組可以相互廣播以實現所需的索引模式。這種方法可以保持可讀性並促進程式碼優化。

要使用np.ix_ 執行索引,請按照以下步驟操作:

  1. 使用np.ix_ 以及行索引和列索引建立兩個廣播數組.
  2. 使用這些索引數組在原始數組中選擇所需的行和列。

範例程式碼

以下程式碼示範如何使用np.ix_ 進行基於索引的選擇:

<code class="python">import numpy as np

# Create indices
row_indices = [4, 2, 18, 16, 7, 19, 4]
col_indices = [1, 2]

# Create broadcasting arrays
index_tuples = np.ix_(row_indices, col_indices)

# Perform indexing
x_indexed = x[index_tuples]</code>
登入後複製

範例輸出

>>> x_indexed
array([[76, 56],
       [70, 47],
       [46, 95],
       [76, 56],
       [92, 46]])
登入後複製

其他注意事項

替代語法:
使用np.ix_ 的替代語法是使用: 運算子指定沿軸的所有索引,除非另有指定。

廣播:
需要注意的是,廣播是沿著輸入陣列的軸發生的。因此,沿每個軸的索引數組的大小應與輸入數組的相應維度相符。

最佳化:
使用 np.ix_ 和廣播進行索引可以提供顯著的效能優勢與迭代索引或使用布林遮罩相比。這在處理大型數組時特別有利。

以上是如何使用「np.ix_」為具有兩個索引清單的 2D NumPy 陣列建立索引?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!