Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengindeks Tatasusunan NumPy 2D dengan Dua Senarai Indeks Menggunakan `np.ix_`?

Bagaimana untuk Mengindeks Tatasusunan NumPy 2D dengan Dua Senarai Indeks Menggunakan `np.ix_`?

Linda Hamilton
Linda Hamiltonasal
2024-10-26 08:27:30921semak imbas

How to Index a 2D NumPy Array with Two Lists of Indices Using `np.ix_`?

Mengindeks tatasusunan Numpy 2D dengan 2 senarai indeks

Pernyataan Masalah

Mengindeks tatasusunan Numpy 2D dengan dua senarai indeks yang berasingan tidak semudah menggunakan satu senarai indeks. Ini boleh menjadi mencabar apabila berurusan dengan tatasusunan yang besar, kerana ia memerlukan penyiaran dan pembentukan semula tatasusunan untuk mencapai pemilihan diindeks yang diingini.

Penyelesaian Menggunakan np.ix_ dan Penyiaran

Fungsi np.ix_ dalam Numpy boleh digunakan untuk mencipta satu tuple tatasusunan pengindeksan yang boleh disiarkan antara satu sama lain untuk mencapai corak pengindeksan yang diingini. Pendekatan ini mengekalkan kebolehbacaan dan menggalakkan pengoptimuman kod.

Untuk melaksanakan pengindeksan menggunakan np.ix_, ikut langkah berikut:

  1. Buat dua tatasusunan penyiaran menggunakan np.ix_ dengan indeks baris dan lajur .
  2. Gunakan tatasusunan pengindeksan ini untuk memilih baris dan lajur yang dikehendaki dalam tatasusunan asal.

Kod Contoh

Yang berikut kod menunjukkan cara menggunakan np.ix_ untuk pilihan berasaskan indeks:

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

# Create indices
row_indices = [4, 2, 18, 16, 7, 19, 4]
col_indices = [1, 2]

# Create broadcasting arrays
index_tuples = np.ix_(row_indices, col_indices)

# Perform indexing
x_indexed = x[index_tuples]</code>

Contoh Output

>>> x_indexed
array([[76, 56],
       [70, 47],
       [46, 95],
       [76, 56],
       [92, 46]])

Pertimbangan Tambahan

Sintaks Alternatif:
Sintaks alternatif untuk menggunakan np.ix_ ialah menggunakan operator : untuk menentukan semua indeks sepanjang paksi melainkan dinyatakan sebaliknya.

Penyiaran:
Adalah penting untuk ambil perhatian bahawa penyiaran berlaku di sepanjang paksi tatasusunan input. Oleh itu, saiz tatasusunan pengindeksan di sepanjang setiap paksi harus sepadan dengan dimensi tatasusunan input yang sepadan.

Pengoptimuman:
Pengindeksan menggunakan np.ix_ dan penyiaran boleh memberikan manfaat prestasi yang ketara berbanding dengan mengulangi indeks atau menggunakan topeng boolean. Ini amat berfaedah apabila bekerja dengan tatasusunan yang besar.

Atas ialah kandungan terperinci Bagaimana untuk Mengindeks Tatasusunan NumPy 2D dengan Dua Senarai Indeks Menggunakan `np.ix_`?. 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