Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Kedudukan Item Tatasusunan dalam Python/NumPy Dengan Cekap Tanpa Isih Berganda?
Kedudukan Item Tatasusunan yang Lebih Pantas dalam Python/NumPy tanpa Isih Berganda
Dalam analisis data dan pembelajaran mesin, selalunya perlu untuk meletakkan kedudukan item dalam tatasusunan berdasarkan nilai mereka. Mengisih dua kali tatasusunan untuk pemeringkatan boleh memakan masa.
Pendekatan Awal
Kaedah biasa ditunjukkan di bawah:
<code class="python">import numpy as np # Sample array array = np.array([4, 2, 7, 1]) # Temporary array for sorting temp = array.argsort() # Rank computation ranks = np.arange(len(array))[temp.argsort()]</code>
Pendekatan ini melibatkan dua operasi pengisihan, meningkatkan kerumitannya.
Penyelesaian Dioptimumkan
Untuk mengelakkan pengisihan berganda, kita boleh memanfaatkan fungsi argsort() NumPy dua kali:
<code class="python">array = np.array([4, 2, 7, 1]) # First argsort to obtain element order order = array.argsort() # Second argsort to obtain ranking ranks = order.argsort()</code>
Penjelasan
Pertama, kami menggunakan argsort() untuk mendapatkan susunan elemen tatasusunan. Kemudian, kami menggunakan argsort() sekali lagi pada susunan yang terhasil, yang memberikan kami kedudukan.
Kesimpulan
Teknik yang dioptimumkan ini meningkatkan dengan ketara kelajuan ranking item tatasusunan dengan mengelakkan pengisihan yang tidak perlu. Untuk tatasusunan berdimensi tinggi, gunakan argumen paksi dalam argsort untuk menentukan paksi untuk mengisih.
Atas ialah kandungan terperinci Bagaimana untuk Kedudukan Item Tatasusunan dalam Python/NumPy Dengan Cekap Tanpa Isih Berganda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!