Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mencari Baris Padanan dengan Cekap dalam Tatasusunan Numpy?

Bagaimana untuk Mencari Baris Padanan dengan Cekap dalam Tatasusunan Numpy?

Susan Sarandon
Susan Sarandonasal
2024-10-21 18:17:30597semak imbas

How to Efficiently Search for a Matching Row in a Numpy Array?

Cara Menyemak Array Numpy untuk Baris Padanan dengan Cekap

Untuk menentukan sama ada tatasusunan Numpy mengandungi baris tertentu, adalah penting untuk menamatkan operasi sebaik sahaja perlawanan ditemui, elakkan lelaran yang tidak perlu.

Penyelesaian Kemungkinan

  • Menggunakan .tolist(): Tukar tatasusunan ke senarai Python dan gunakan pengendali "dalam". Kaedah ini amat berkesan jika baris yang sepadan berada berhampiran permulaan tatasusunan.
  • Menggunakan paparan: Cipta paparan tatasusunan, membolehkan perbandingan baris mengikut baris dengan baris sasaran.
  • Lelaran ke atas senarai Numpy: Hasilkan atas elemen tatasusunan, menguji setiap baris terhadap baris sasaran. Walau bagaimanapun, pendekatan ini agak perlahan.
  • Menggunakan fungsi logik numpy: Gunakan np.equal() untuk melakukan perbandingan mengikut unsur, diikuti dengan .all(1).any( ) kaedah untuk menentukan sama ada mana-mana baris sepadan dengan sasaran.

Perbandingan Prestasi

Menguji kaedah ini pada tatasusunan pelbagai saiz mendedahkan bahawa rutin numpy sentiasa cemerlang dalam carian kelajuan. Masa yang diambil adalah bebas daripada sama ada padanan ditemui atau terlepas.

Sebagai contoh, kaedah "view" numpy mencari tatasusunan elemen 300,000 x 3 dalam kira-kira 0.01 saat, tidak kira di mana baris sasaran berada atau jika tiada.

Sebaliknya, pengendali "masuk" Python boleh menjadi lebih pantas dengan ketara untuk perlawanan awal (cth., 0.003 saat), manakala teknik penjana adalah lebih perlahan untuk carian menyeluruh (cth., 6.47 saat).

Kesimpulan

Untuk padanan baris yang cekap dalam tatasusunan Numpy, disyorkan untuk menggunakan np.equal() digabungkan dengan .all(1).any(), kerana ia menawarkan prestasi yang konsisten tanpa mengira hasil carian.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Baris Padanan dengan Cekap dalam Tatasusunan Numpy?. 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