Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara Cekap untuk Mencari Baris Tertentu dalam Tatasusunan NumPy: Soalan dan Penyelesaian

Cara Cekap untuk Mencari Baris Tertentu dalam Tatasusunan NumPy: Soalan dan Penyelesaian

Susan Sarandon
Susan Sarandonasal
2024-10-21 18:22:03874semak imbas

Efficient Ways to Find a Specific Row in a NumPy Array: Questions and Solutions

Mencari Contoh Baris Tertentu dalam Tatasusunan NumPy Dengan Cekap

Apabila bekerja dengan tatasusunan NumPy, seseorang mungkin menghadapi keperluan untuk menentukan sama ada tatasusunan mengandungi baris tertentu, tetapi kaedah mengandungi standard untuk ndarray menimbulkan persoalan. Artikel ini membentangkan penyelesaian yang cekap dan Pythonic untuk isu ini.

Satu pendekatan melibatkan menukar tatasusunan NumPy kepada senarai Python menggunakan .tolist() dan melaksanakan semakan keahlian pada senarai.

a = np.array([[1,2],[10,20],[100,200]])
[1,2] in a.tolist() # Returns True
[1,20] in a.tolist() # Returns False

Kaedah lain ialah menggunakan paparan pada tatasusunan dan menggunakan fungsi .all(1) untuk membandingkan setiap baris dengan elemen baris sasaran dari segi.

any((a[:]==[1,2]).all(1)) # Returns True
any((a[:]==[1,20]).all(1)) # Returns False

Selain itu, seseorang boleh menjana melalui senarai NumPy untuk peningkatan prestasi yang berpotensi. Walau bagaimanapun, pendekatan ini boleh menjadi tidak cekap jika keputusan tidak ditemui lebih awal.

any(([1,2] == x).all() for x in a) # Stops on first occurrence

Akhir sekali, fungsi logik NumPy menyediakan cara ringkas untuk melakukan perbandingan.

any(np.equal(a,[1,2]).all(1)) # Returns True

Hasil penanda aras menunjukkan bahawa rutin numpy mengekalkan kelajuan carian yang konsisten tanpa mengira senario hit atau miss. Pandangan, logik sama dan Python dalam pendekatan pengendali adalah setanding dari segi kecekapan, manakala penjana atas NumPy tidak disyorkan untuk carian tatasusunan penuh.

Atas ialah kandungan terperinci Cara Cekap untuk Mencari Baris Tertentu dalam Tatasusunan NumPy: Soalan dan Penyelesaian. 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