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!