Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah `np.ix_` dapat memudahkan pemilihan dan penetapan indeks dalam tatasusunan NumPy berbilang dimensi?

Bagaimanakah `np.ix_` dapat memudahkan pemilihan dan penetapan indeks dalam tatasusunan NumPy berbilang dimensi?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-26 19:38:021006semak imbas

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

Mengindeks Tatasusunan dan Topeng Boolean untuk Pemilihan Indeks atau Tugasan Menggunakan np.ix_

Memanipulasi pilihan atau tugasan dalam tatasusunan NumPy berbilang dimensi boleh dipermudahkan menggunakan np.ix_. Begini caranya:

1. Menggunakan Tatasusunan Pengindeksan

A. Pemilihan

np.ix_ membolehkan anda mengumpulkan tatasusunan pengindeksan ke dalam gabungan berdimensi lebih tinggi untuk mengindeks tatasusunan berbilang dimensi. Untuk membuat pilihan menggunakan dua tatasusunan pengindeksan 1D (cth., row_indices dan col_indices), gunakan:

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

Ini bersamaan dengan versi bersarang di mana tatasusunan pengindeksan luar (cth., row_indices) disiarkan terhadap bahagian dalam tatasusunan pengindeksan (col_indices):

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

B. Tugasan

Begitu juga, menggunakan tuple tatasusunan pengindeksan yang dibuat oleh np.ix_, tugasan skalar atau penyiaran blok data boleh dilakukan secara langsung:

<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. Menggunakan Boolean Masks

np.ix_ juga berfungsi dengan Boolean mask:

A. Pemilihan

Untuk memilih blok data menggunakan Boolean mask (row_mask dan col_mask), gunakan:

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

B. Tugasan

Untuk tugasan dengan topeng Boolean, gunakan:

<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>

Atas ialah kandungan terperinci Bagaimanakah `np.ix_` dapat memudahkan pemilihan dan penetapan indeks dalam tatasusunan NumPy berbilang dimensi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn