高度な NumPy テクニックによる配列のインデックス付け
さまざまな計算シナリオでは、ある配列の値に基づいて別の配列のインデックスを付けることが必要になります。任意の値を持つ A とインデックスを含む B という 2 つの行列がある例を考えてみましょう。目的は、B のインデックスによって決定される A から値を選択することです。
これを実現するために、NumPy はさまざまなインデックス付け方法を提供します。
1.高度なインデックス作成:
A[np.arange(A.shape[0])[:, None], B]
このインデックス作成アプローチは、np.arange を使用して新しい配列を初期化し、各行の列インデックスを作成します。次に、これらの行インデックスを最初の次元として使用し、B の値を 2 番目の次元として使用して、A.
2 から値を抽出します。線形インデックス:
m, n = A.shape out = np.take(A, B + n * np.arange(m)[:, None])
または、m と n が A の形状を表す線形インデックスを使用することもできます。 。 np.take を使用して、結合された配列 B と、n と np.arange の行インデックスを乗算して作成されたインデックス オフセットに基づいて要素を選択します。 .
以上が高度な NumPy テクニックを使用して配列に効率的にインデックスを付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。