別の配列
からのインデックスを使用して2Dアレイから要素を抽出します。このシナリオは、スパースマトリックスやインデックス付き選択などのデータ構造を操作するときに発生することがよくあります。 b = np.Array([[1]、[0]、[1]]) [5]]]
solutions:
A = np.array([[0, 1], [2, 3], [4, 5]]) B = np.array([[1], [0], [1]]) # Index array
a [np.arange(a.shape [0])、b.ravel()]
C = np.array([[1], [2], [5]])この方法には、numpyの整数アレイインデックス機能を使用することが含まれます。 aの行に対応するインデックスの範囲を生成し、フラット化されたbアレイと組み合わせて適切な要素を選択します。トランスポジションとnp.choose:
np.choose(b.ravel()、a.t)
この代替アプローチでは、bの形状に一致するようにaを転置し、np.chooseを使用して、flattened bアレイに基づいて&&] に基づいて目的の要素を選択します。 iterable解放(python> = 3.6):
A[np.arange(A.shape[0]), B.ravel()]
この方法では、繰り返し解凍を使用してAを行のリストに変換し、Bのインデックスに基づいてAの行を繰り返して、目的の要素を抽出します。
4。理解と放送のリスト:
np.choose(B.ravel(), A.T)
flist freghensionsを使用して、AおよびBの要素を反復することにより、新しいアレイを作成することができます。選択。
5。ファンシーインデックス(numpy> = 1.18):
*A = A.T C = np.array([*zip(*A)][i] for i in B.ravel())
から目的の要素を選択するために使用できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3