Bagaimana untuk Memilih Indeks Lajur Khusus setiap Baris dengan Cekap dalam Tatasusunan NumPy?

Linda Hamilton
Lepaskan: 2024-10-30 21:51:30
asal
305 orang telah melayarinya

How to Efficiently Select Specific Column Indexes per Row in NumPy Arrays?

Pilih Indeks Lajur Khusus setiap Baris dalam Tatasusunan NumPy dengan cekap

Apabila bekerja dengan matriks NumPy, mungkin timbul senario di mana anda perlu mengekstrak tertentu lajur setiap baris berdasarkan senarai indeks. Menggunakan kaedah lelaran konvensional boleh menjadi tidak cekap untuk set data yang besar. Untuk menangani perkara ini, terokai penyelesaian alternatif untuk mengoptimumkan prestasi.

Satu pendekatan melibatkan pemilihan langsung menggunakan tatasusunan boolean. Pertimbangkan matriks boolean b dengan bentuk yang sama seperti matriks asal anda a. Setiap lajur dalam b mewakili keadaan yang menunjukkan sama ada untuk memilih lajur itu daripada a. Dengan memanfaatkan pengindeksan boolean, anda boleh mendapatkan semula nilai lajur yang dikehendaki terus daripada a[b].

Sebagai contoh, diberikan matriks a dan tatasusunan boolean b:

<code class="python">a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.array([[False, True, False], [True, False, False], [False, False, True]])</code>
Salin selepas log masuk

Anda boleh melaksanakan pemilihan langsung:

<code class="python">result = a[b]</code>
Salin selepas log masuk

Operasi ini akan menghasilkan output berikut:

<code class="python">[2, 4, 9]</code>
Salin selepas log masuk

Sebagai alternatif, anda boleh menggunakan np.arange untuk mencipta tatasusunan indeks dan melakukan pemilihan langsung padanya. Bergantung pada logik penjanaan tatasusunan boolean anda, kaedah ini mungkin menawarkan faedah prestasi.

<code class="python">result = a[np.arange(len(a)), [1, 0, 2]]</code>
Salin selepas log masuk

Pendekatan ini menghasilkan output yang sama seperti penyelesaian tatasusunan boolean.

Dengan memanfaatkan teknik pemilihan yang dioptimumkan ini , anda boleh meningkatkan kecekapan mengekstrak indeks lajur khusus setiap baris dengan ketara daripada tatasusunan NumPy yang besar.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Indeks Lajur Khusus setiap Baris dengan Cekap dalam Tatasusunan NumPy?. 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