Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana Menduduki Elemen dengan Cekap dalam Tatasusunan NumPy Tanpa Isih Berganda?

Bagaimana Menduduki Elemen dengan Cekap dalam Tatasusunan NumPy Tanpa Isih Berganda?

DDD
Lepaskan: 2024-10-27 04:35:30
asal
965 orang telah melayarinya

How to Efficiently Rank Elements in a NumPy Array Without Double Sorting?

Kedudukan Tatasusunan yang Cekap dalam Python/NumPy tanpa Isih Berganda

Dalam analisis data dan pembelajaran mesin, kedudukan item dalam tatasusunan ialah operasi biasa . Walau bagaimanapun, adalah tidak cekap untuk mengisih tatasusunan dua kali untuk mencapai ini, kerana ia meningkatkan kerumitan pengiraan. Berikut ialah pendekatan yang lebih optimum menggunakan NumPy:

Untuk menyusun item dalam tatasusunan tanpa menggunakan dua kali, ikut langkah berikut:

  1. Gunakan argsort sekali untuk mendapatkan susunan elemen tatasusunan.
  2. Gunakan argsort sekali lagi untuk menentukan kedudukan pesanan yang diperoleh dalam langkah 1.

Contohnya:

<code class="python">import numpy as np

array = np.array([4, 2, 7, 1])

order = array.argsort()
ranks = order.argsort()

print("Original Array:", array)
print("Ordering:", order)
print("Ranks:", ranks)</code>
Salin selepas log masuk

Output:

Original Array: [4 2 7 1]
Ordering: [3 1 2 0]
Ranks: [2 1 3 0]
Salin selepas log masuk

Sebagai anda boleh lihat, tatasusunan kedudukan menyediakan kedudukan untuk setiap elemen dalam tatasusunan asal tanpa memerlukan pengisihan berganda.

Perhatikan bahawa, untuk tatasusunan dimensi 2D atau lebih tinggi, adalah penting untuk menentukan paksi yang betul untuk digunakan untuk mengisih mengikut menyediakan hujah paksi untuk argsort.

Atas ialah kandungan terperinci Bagaimana Menduduki Elemen dengan Cekap dalam Tatasusunan NumPy Tanpa Isih Berganda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan