Bagaimana untuk Mengindeks Tatasusunan NumPy 2D dengan Cekap Menggunakan Dua Senarai Indeks?

Patricia Arquette
Lepaskan: 2024-10-27 04:54:02
asal
321 orang telah melayarinya

How to Efficiently Index a 2D NumPy Array Using Two Lists of Indices?

Mengindeks Tatasusunan NumPy 2D Menggunakan Dua Senarai Indeks

Objektifnya adalah untuk melaksanakan pengindeksan pada tatasusunan NumPy 2D menggunakan dua senarai indeks yang disediakan, satu untuk baris dan satu untuk lajur. Hasil yang diinginkan adalah untuk mendapatkan subset tatasusunan berdasarkan indeks yang ditentukan dengan cekap.

Menggunakan np.ix_

Untuk mencapai ini, kita boleh memanfaatkan fungsi np.ix_ daripada NumPy. np.ix_ mencipta tuple tatasusunan pengindeksan yang boleh digunakan untuk penyiaran. Begini cara ia berfungsi:

Dengan Tatasusunan Pengindeksan

Pilihan:

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

Ini menghasilkan satu tuple mengindeks tatasusunan berdasarkan row_indices dan col_indices. Menyiarkan tatasusunan ini membolehkan kami mengindeks ke dalam x dan mengekstrak subset yang diingini.

Tugasan:

<code class="python">x[np.ix_(row_indices, col_indices)] = value</code>
Salin selepas log masuk

Ini memberikan nilai yang ditentukan ke dalam kedudukan yang diindeks dalam x.

Dengan Topeng

Pilihan:

<code class="python">row_mask = np.array([True, False, False, True, False], dtype=bool)
col_mask = np.array([False, True, True, False, False], dtype=bool)

x_indexed = x[np.ix_(row_mask, col_mask)]</code>
Salin selepas log masuk

Di sini, kami menggunakan topeng boolean (row_mask dan col_mask) untuk menentukan baris dan lajur yang hendak dipilih.

Tugasan:

<code class="python">x[np.ix_(row_mask, col_mask)] = value</code>
Salin selepas log masuk

Ini memberikan nilai kepada kedudukan bertopeng dalam x.

< h3>Sample Run

Pertimbangkan tatasusunan dan senarai indeks berikut:

<code class="python">x = np.random.random_integers(0, 5, (20, 8))

row_indices = [4, 2, 18, 16, 7, 19, 4]
col_indices = [1, 2]</code>
Salin selepas log masuk

Menggunakan np.ix_, kita boleh mengindeks ke dalam x:

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

print(x_indexed)

# Output:
# [[76 56]
#  [70 47]
#  [46 95]
#  [76 56]
#  [92 46]]</code>
Salin selepas log masuk

Ini memberikan kita subset tatasusunan yang dikehendaki dengan baris dan lajur yang dipilih berdasarkan indeks yang disediakan.

Atas ialah kandungan terperinci Bagaimana untuk Mengindeks Tatasusunan NumPy 2D dengan Cekap Menggunakan Dua Senarai Indeks?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!