Rumah > pembangunan bahagian belakang > Tutorial Python > 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
Lepaskan: 2024-10-26 19:38:02
asal
1139 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan