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

sumber:php.cn
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