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>
Anda boleh melaksanakan pemilihan langsung:
<code class="python">result = a[b]</code>
Operasi ini akan menghasilkan output berikut:
<code class="python">[2, 4, 9]</code>
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>
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!