Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengekstrak Elemen daripada Tatasusunan Berdasarkan Indeks dalam Tatasusunan Lain Menggunakan Pengindeksan Tatasusunan Integer?

Bagaimana untuk Mengekstrak Elemen daripada Tatasusunan Berdasarkan Indeks dalam Tatasusunan Lain Menggunakan Pengindeksan Tatasusunan Integer?

Linda Hamilton
Lepaskan: 2024-11-09 02:55:02
asal
865 orang telah melayarinya

How to Extract Elements from an Array Based on Indices in Another Array Using Integer Array Indexing?

Menggunakan Pengindeksan Tatasusunan Integer untuk Mengekstrak Elemen Berdasarkan Indeks Tatasusunan Sekunder

Dalam senario yang diberikan, matlamatnya adalah untuk mendapatkan semula elemen tertentu daripada tatasusunan A menggunakan indeks yang ditentukan dalam tatasusunan kedua B. Daripada bergantung pada np.take atau np.choose, lebih banyak pendekatan mudah ialah menggunakan pengindeksan tatasusunan integer NumPy:

A[np.arange(A.shape[0]),B.ravel()]
Salin selepas log masuk

Begini cara kod ini mencapai hasil yang diingini:

  • np.arange(A.shape[0]) mencipta tatasusunan indeks daripada 0 hingga (A.shape[0] - 1), mewakili baris A.
  • B.ravel() meratakan B menjadi tatasusunan satu dimensi, memastikan ia mempunyai bilangan elemen yang sama seperti baris dalam A.
  • Operasi pengindeksan A[... ] mendapatkan semula elemen daripada A menggunakan indeks baris dan indeks lajur daripada B.

Pendekatan ini amat berguna apabila B ialah 1D tatasusunan atau senarai indeks lajur. Dengan melangkau operasi merata, kod menjadi lebih mudah:

A[np.arange(A.shape[0]),B]
Salin selepas log masuk

Contoh:

A = np.array([[0, 1], [2, 3], [4, 5]])
B = np.array([1, 0, 1])

result = A[np.arange(A.shape[0]), B]

print(result)
# Output: [1, 2, 5]
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Elemen daripada Tatasusunan Berdasarkan Indeks dalam Tatasusunan Lain Menggunakan Pengindeksan Tatasusunan Integer?. 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