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.
Berdasarkan pemerhatian dan eksperimen, diharapkan bahawa np.vectorize adalah jauh lebih pantas daripada df.apply, terutamanya untuk set data yang lebih besar.
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.
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.
Walaupun np.vectorize biasanya lebih pantas, terdapat beberapa kaveat penting untuk dipertimbangkan:
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!