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

Linda Hamilton
Lepaskan: 2024-10-27 02:40:30
asal
724 orang telah melayarinya

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

Mengindeks Tatasusunan NumPy 2D dengan 2 Senarai Indeks

Menggunakan np.ix_ dengan Tatasusunan Pengindeksan

Untuk mengindeks tatasusunan NumPy 2D menggunakan dua senarai daripada indeks, tatasusunan,, kita boleh menggunakan fungsi np.ix_ bersama-sama dengan tatasusunan pengindeksan.

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

Menggunakan np.ix_ dengan Topeng

Sebagai alternatif, kita boleh menggunakan np.ix_ dengan boolean mask untuk memilih dan mengindeks tatasusunan:

<code class="python">row_mask = [0, 1, 1, 0, 0, 1, 0]
col_mask = [1, 0, 1, 0, 1, 1, 0, 0]

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

Contoh

Pertimbangkan contoh berikut:

<code class="python">import numpy as np

x = np.random.randint(0, 6, (20, 8))

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

Untuk mengindeks x menggunakan senarai yang disediakan, kita boleh gunakan sama ada kaedah:

<code class="python"># Using np.ix_ with indexing arrays
x_indexed = x[np.ix_(row_indices, col_indices)]

# Using np.ix_ with masks
row_mask = np.isin(np.arange(x.shape[0]), row_indices)
col_mask = np.isin(np.arange(x.shape[1]), col_indices)

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

Kedua-dua kaedah akan menghasilkan tatasusunan diindeks yang diingini:

<code class="python">>>> x_indexed
array([[76, 56],
       [70, 47],
       [46, 95],
       [76, 56],
       [92, 46]])</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengindeks Tatasusunan NumPy 2D 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!