2D Numpy 配列にインデックスを付ける2 つの別々のインデックスのリストは、1 つのインデックスのリストを使用するほど単純ではありません。目的のインデックス付き選択を実現するには配列のブロードキャストと再形成が必要になるため、大規模な配列を扱う場合は困難になる可能性があります。
Numpy の np.ix_ 関数を使用すると、相互にブロードキャストして目的のインデックス付けパターンを実現できるインデックス付け配列のタプルを作成できます。このアプローチにより、可読性が維持され、コードの最適化が促進されます。
np.ix_ を使用してインデックス付けを実行するには、次の手順に従います。
以下コードは、インデックスベースの選択に 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_」を使用して 2 つのインデックスのリストを持つ 2D NumPy 配列にインデックスを付ける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。