Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mencapai Kefungsian GroupBy dalam NumPy Tanpa Fungsi Khusus?

Bagaimanakah Saya Boleh Mencapai Kefungsian GroupBy dalam NumPy Tanpa Fungsi Khusus?

Susan Sarandon
Susan Sarandonasal
2024-11-26 04:38:13247semak imbas

How Can I Achieve GroupBy Functionality in NumPy Without a Dedicated Function?

GroupBy Functionality dalam NumPy

Data pengelompokan ialah tugas biasa dalam analisis data, membolehkan anda mengagregat dan menyusun data berdasarkan kriteria tertentu. Walaupun NumPy tidak menyediakan kumpulan khusus mengikut fungsi secara asal, terdapat beberapa pendekatan yang boleh anda ambil untuk mencapai fungsi ini.

Satu kaedah melibatkan penggunaan fungsi np.split() dalam kombinasi dengan np.unique() . Pendekatan ini bergantung pada andaian bahawa lajur pertama tatasusunan anda, yang berfungsi sebagai kunci kumpulan, sentiasa meningkat. Dengan mengisih tatasusunan mengikut lajur ini dan mendapatkan nilai unik, anda kemudiannya boleh membahagi tatasusunan kepada kumpulan menggunakan np.split().

Sebagai contoh, diberikan tatasusunan berikut:

array([[1, 275],
       [1, 441],
       [1, 494],
       [1, 593],
       [2, 679],
       [2, 533],
       [2, 686],
       [3, 559],
       [3, 219],
       [3, 455],
       [4, 605],
       [4, 468],
       [4, 692],
       [4, 613]])

Untuk mengumpulkan tatasusunan ini mengikut lajur pertama, anda boleh menggunakan kod berikut:

a = a[a[:, 0].argsort()]
np.split(a[:,1], np.unique(a[:, 0], return_index=True)[1][1:])

Ini akan menghasilkan yang diingini output:

array([[[275, 441, 494, 593]],
       [[679, 533, 686]],
       [[559, 219, 455]],
       [[605, 468, 692, 613]]], dtype=object)

Pendekatan ini menawarkan beberapa kelebihan:

  • Ia mengelakkan keperluan untuk gelung eksplisit, menjadikannya lebih cekap.
  • Senarai hasil adalah NumPy tatasusunan, membenarkan operasi NumPy selanjutnya tanpa penukaran.
  • Ia mempunyai kerumitan O(n) (atau O(n log(n)) dengan pengisihan).

Walaupun NumPy sendiri mungkin tidak mempunyai kumpulan tertentu mengikut fungsi, kaedah yang diterangkan di atas menyediakan cara yang berkesan untuk melaksanakan operasi pengumpulan pada data anda, membolehkan anda untuk menyusun dan menganalisisnya dengan berkesan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Kefungsian GroupBy dalam NumPy Tanpa Fungsi Khusus?. 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