整数配列のインデックス付けを使用して NumPy 配列から要素を抽出する方法

Mary-Kate Olsen
リリース: 2024-11-12 18:04:02
オリジナル
740 人が閲覧しました

How to Extract Elements from a NumPy Array Using Integer Array Indexing?

NumPy 配列によるインデックス付き抽出

NumPy で多次元配列を操作する場合、多くの場合、インデックスに基づいて特定の要素を抽出する必要があります。これに関して、配列 (B) が別の配列 (A) の 2 番目の次元のインデックスとして機能する特定のシナリオが発生する可能性があります。

2 つの配列 A と B を使用した例を考えてみましょう。

A = np.array([[0,1], 
              [2,3], 
              [4,5]])
B = np.array([[1],
              [0],
              [1]], dtype='int')
ログイン後にコピー

私たちの目標は、A の各行から 1 つの要素を抽出することです。要素インデックスは、B の対応する要素によって決まります。目的の出力は:

C = np.array([[1],
              [2],
              [5]])
ログイン後にコピー

整数配列インデックス付けを使用した解決策:

B をブロードキャストする代わりに、NumPy の純粋な整数配列インデックス付けを使用できます:

A[np.arange(A.shape[0]),B.ravel()]
ログイン後にコピー

ここで、np.arange(A.shape[0]) は次の配列を作成します。インデックスは A の行数に対応し、B.ravel() は B を 1D 配列に平坦化します。これらを組み合わせることで、A から適切な要素を抽出できます。

サンプル実行:

print(A)
print(B)
print(A[np.arange(A.shape[0]),B.ravel()])
ログイン後にコピー

出力:

[[0 1]
 [2 3]
 [4 5]]
[[1]
 [0]
 [1]]
[1 2 5]
ログイン後にコピー

このアプローチは、抽出問題に対する簡潔かつ効率的な解決策を提供します。

以上が整数配列のインデックス付けを使用して NumPy 配列から要素を抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート