目的は、提供された 2 つのインデックス リスト (行用と行用) を使用して 2D NumPy 配列のインデックス付けを実行することです。 1 つは列用です。望ましい結果は、指定されたインデックスに基づいて配列のサブセットを効率的に取得することです。
np.ix_ を利用する
これを達成するには、 NumPy の np.ix_ 関数。 np.ix_ は、ブロードキャストに使用できるインデックス配列のタプルを作成します。仕組みは次のとおりです:
<code class="python">x_indexed = x[np.ix_(row_indices, col_indices)]</code>
これにより、次のタプルが作成されます。 row_indices とcol_indices に基づいて配列のインデックスを作成します。これらの配列をブロードキャストすることで、x にインデックスを付けて、目的のサブセットを抽出できるようになります。
代入:<code class="python">x[np.ix_(row_indices, col_indices)] = value</code>
これにより、指定された値が x のインデックス付き位置に割り当てられます。
<code class="python">row_mask = np.array([True, False, False, True, False], dtype=bool) col_mask = np.array([False, True, True, False, False], dtype=bool) x_indexed = x[np.ix_(row_mask, col_mask)]</code>
ここでは、ブールマスク (row_mask およびcol_mask) を使用します。選択する行と列を定義します。
代入:<code class="python">x[np.ix_(row_mask, col_mask)] = value</code>
これは、x 内のマスクされた位置に値を割り当てます。
< h3>サンプル実行
<code class="python">x = np.random.random_integers(0, 5, (20, 8)) row_indices = [4, 2, 18, 16, 7, 19, 4] col_indices = [1, 2]</code>
<code class="python">x_indexed = x[np.ix_(row_indices, col_indices)] print(x_indexed) # Output: # [[76 56] # [70 47] # [46 95] # [76 56] # [92 46]]</code>
以上が2 つのインデックスのリストを使用して 2D NumPy 配列に効率的にインデックスを付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。