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

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

Mary-Kate Olsen
リリース: 2024-10-26 19:38:02
オリジナル
1114 人が閲覧しました

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 サイトの他の関連記事を参照してください。

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