np.vectorize vs. Panda terpakai: Manakah Lebih Cepat untuk Set Data Besar?

DDD
Lepaskan: 2024-10-27 07:16:02
asal
545 orang telah melayarinya

np.vectorize vs. Pandas apply: Which is Faster for Large Datasets?

np.vectorize vs. Pandas terpakai: Perbandingan Prestasi

Pengguna Pandas biasanya menghadapi keperluan untuk mencipta lajur baharu berdasarkan yang sedia ada. Dua kaedah popular untuk tugas ini ialah fungsi aplikasi Pandas dan vektor NumPy. Walau bagaimanapun, perbezaan kelajuan antara pendekatan ini adalah persoalan yang belum diteliti secara menyeluruh.

Tingkah Laku Yang Dijangka

Berdasarkan pemerhatian dan eksperimen, diharapkan bahawa np.vectorize adalah jauh lebih pantas daripada df.apply, terutamanya untuk set data yang lebih besar.

Sebab Perbezaan Kelajuan

Sebab utama jurang prestasi terletak pada sifat setiap pendekatan.

df.gunakan kerja dengan mengulangi setiap baris dalam DataFrame dan menilai fungsi yang diberikan. Ini melibatkan penciptaan dan manipulasi objek siri Pandas, yang membawa overhed yang ketara disebabkan oleh indeks, nilai dan atributnya.

Sebaliknya, np.vectorize menukar fungsi input kepada fungsi universal (ufunc ) yang beroperasi pada tatasusunan NumPy secara langsung. Ini membolehkan pengiraan vektor, yang sangat dioptimumkan dan mengelakkan gelung peringkat Python.

Tanda Aras Prestasi

Percubaan soalan menunjukkan kelebihan kelajuan yang ketara bagi np. vektorkan ke atas df.mohon untuk pelbagai saiz set data. Untuk DataFrame dengan 1 juta baris, np.vectorize didapati lebih 25 kali lebih pantas.

Pertimbangan Tambahan

Walaupun np.vectorize biasanya lebih pantas, terdapat beberapa kaveat penting untuk dipertimbangkan:

  • Untuk set data kecil, overhed penyediaan pengiraan vektor mungkin menafikan sebarang keuntungan prestasi.
  • Untuk operasi yang tidak mudah divektorkan, seperti penugasan bersyarat, df.apply mungkin merupakan pilihan yang lebih baik.
  • Vektorisasi sebenar melalui operasi NumPy atau pengoptimuman numba boleh memberikan kecekapan yang lebih besar.

Atas ialah kandungan terperinci np.vectorize vs. Panda terpakai: Manakah Lebih Cepat untuk Set Data Besar?. 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