ホームページ >バックエンド開発 >Python チュートリアル >NumPy で複数の配列にインデックスを付けるにはどうすればよいですか?
NumPy での複数の配列のインデックス付け
NumPy では、1 次元配列を超えるインデックス付けには高度なテクニックが必要です。 1 つのシナリオは、多次元インデックスとして知られる、別の配列の値に基づいて 1 つの配列にインデックスを付けることです。
任意の値を持つ行列 A を考えます:
array([[ 2, 4, 5, 3], [ 1, 6, 8, 9], [ 8, 7, 0, 2]])
および行列 B の要素のインデックスを含むA:
array([[0, 0, 1, 2], [0, 3, 2, 1], [3, 2, 1, 0]])
B のインデックスを使用して A から値を選択するには、NumPy の高度なインデックス作成を使用できます。
A[np.arange(A.shape[0])[:,None],B]
このインデックス付けアプローチでは、行インデックス (0、1、 2) B で指定されたインデックスを使用します。
または、線形インデックスを使用することもできます。
m,n = A.shape out = np.take(A,B + n*np.arange(m)[:,None])
ここで、m と n は行と列の数を表します。それぞれAにあります。 np.take() は、B と n の合計に行インデックスの範囲を乗算して生成された線形インデックスに基づいて、A から要素を抽出します。
この手法を使用すると、出力は次のようになります:
[[2, 2, 4, 5], [1, 9, 8, 6], [2, 0, 7, 8]]
このインデックス付け方法により、要素へのアクセスと操作が柔軟になります。複数の基準に基づいて、複雑なデータ処理シナリオに対する NumPy 配列の汎用性を高めます。
以上がNumPy で複数の配列にインデックスを付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。