Bagaimana untuk Mencari Baris Padanan dengan Cekap dalam Tatasusunan Numpy?

Susan Sarandon
Lepaskan: 2024-10-21 18:17:30
asal
514 orang telah melayarinya

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!

sumber:php
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!