ホームページ  >  記事  >  バックエンド開発  >  `np.ix_` はどのようにして多次元 NumPy 配列でのインデックスの選択と割り当てを簡素化できるのでしょうか?

`np.ix_` はどのようにして多次元 NumPy 配列でのインデックスの選択と割り当てを簡素化できるのでしょうか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-26 19:38:021006ブラウズ

How can `np.ix_` simplify index selection and assignment in multidimensional NumPy arrays?

np.ix_ を使用したインデックス選択または代入のための配列とブール マスクのインデックス付け

多次元 NumPy 配列での選択または代入の操作は、np.ix_ を使用して簡素化できます。仕組みは次のとおりです:

1.インデックス配列の使用

A.選択

np.ix_ を使用すると、インデックス付け配列を高次元の組み合わせにグループ化し、多次元配列のインデックス付けを行うことができます。 2 つの 1D インデックス配列 (row_indices とcol_indices など) を使用して選択を行うには、次を使用します。

<code class="python">x_indexed = x[np.ix_(row_indices, col_indices)]</code>

これは、外側のインデックス配列 (row_indices など) が内側のインデックス配列に対してブロードキャストされるネストされたバージョンと同等です。インデックス配列 (col_indices):

<code class="python">x_indexed = x[np.asarray(row_indices)[:,None], col_indices]</code>

B.割り当て

同様に、np.ix_ によって作成されたインデックス配列タプルを使用して、データ ブロックのスカラー割り当てまたはブロードキャストを直接行うことができます。

<code class="python">x[np.ix_(row_indices, col_indices)] = scalar # assign a scalar
x[np.ix_(row_indices, col_indices)] = block  # assign a broadcastable block</code>

2.ブール マスクの使用

np.ix_ はブール マスクでも機能します:

A.選択

ブール マスク (row_mask およびcol_mask) を使用してデータ ブロックを選択するには、次を使用します。

<code class="python">x[np.ix_(row_mask, col_mask)]</code>

B.割り当て

ブールマスクを使用した割り当ての場合は、

<code class="python">x[np.ix_(row_mask, col_mask)] = scalar # assign a scalar
x[np.ix_(row_mask, col_mask)] = block  # assign a broadcastable block</code>
を使用します。

以上が`np.ix_` はどのようにして多次元 NumPy 配列でのインデックスの選択と割り当てを簡素化できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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