Mencari Nilai Maksimum Berbilang dengan NumPy
Tatasusunan NumPy menawarkan pelbagai fungsi untuk operasi statistik, termasuk mencari nilai maksimum tunggal menggunakan np.argmax. Walau bagaimanapun, untuk senario yang perlu mengenal pasti nilai maksimum N teratas, terdapat keperluan khusus yang tidak dapat dipenuhi oleh np.argmax.
Penyelesaian: Menggunakan np.argpartition dalam Versi NumPy Lebih Baru
Dengan NumPy versi 1.8 dan lebih tinggi, fungsi np.argpartition menyediakan penyelesaian untuk masalah ini. Dengan menggunakan fungsi ini, anda boleh mendapatkan indeks bagi N elemen terbesar.
Sebagai contoh, pertimbangkan tatasusunan [1, 3, 2, 4, 5]. Untuk mendapatkan semula indeks empat elemen terbesar:
import numpy as np a = np.array([9, 4, 4, 3, 3, 9, 0, 4, 6, 0]) ind = np.argpartition(a, -4)[-4:] top_four = a[ind]
Ini akan menghasilkan output berikut:
array([1, 5, 8, 0]) array([4, 9, 6, 9])
di mana 'ind' mewakili indeks empat elemen terbesar, dan 'top_four' ialah nilai yang sepadan.
Isih Indeks untuk Tertib Output
Jika perlu, anda boleh mengisih indeks selanjutnya dengan menggunakan np.argsort pada elemen tatasusunan yang sepadan:
sorted_ind = ind[np.argsort(a[ind])]
Ini memastikan elemen top-k diperolehi dalam tertib diisih, dengan kerumitan masa O(n k log k).
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Cari Indeks Nilai Maksimum N Teratas dalam Tatasusunan NumPy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!