ホームページ >バックエンド開発 >Python チュートリアル >別の配列のインデックスを使用して 2D 配列から要素を抽出するにはどうすればよいですか?

別の配列のインデックスを使用して 2D 配列から要素を抽出するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-09 11:40:021062ブラウズ

How to Extract Elements from a 2D Array Using Indices from Another Array?

別の配列の 2 次元のインデックスとして NumPy 配列を使用する

によって提供されるインデックスに基づいて 2D 配列から特定の要素を抽出するには2 番目の配列では、NumPy の整数配列を活用できます。

次の例を考えてみましょう:

A = np.array([[0,1], [2,3], [4,5]])
B = np.array([[1], [0], [1]], dtype='int')

次の目的の出力を取得するには:

C = np.array([[1], [2], [5]])

次のメソッドを使用できます:

A[np.arange(A.shape[0]),B.ravel()]

どうやって動作:

  • np.arange(A.shape[0]) は、A の各行のインデックスを含む配列を作成します。
  • B.ravel() は B を平坦化します。追加の次元を削除します。
  • 結合されたインデックス配列[np.arange(A.shape[0]),B.ravel()] は、抽出する A の行と列のインデックスを指定します。

あるいは、B が 1D 配列またはリストの場合列インデックスの場合、.ravel() を使用してフラット化をスキップできます:

A[np.arange(A.shape[0]),B]

このメソッドは、要素を抽出するための簡単なアプローチを提供します。別の配列から派生したインデックスを使用して 2D 配列から取得します。

以上が別の配列のインデックスを使用して 2D 配列から要素を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。