Cara Mengira Jumlah Terkumpul Nombor dalam Senarai dengan Cekap
Apabila memproses data berangka, selalunya perlu mengira jumlah kumulatif bagi nombor dalam senarai. Di sini, kami menyediakan penyelesaian yang komprehensif dan menangani isu yang dibangkitkan oleh pengguna yang cuba menjumlahkan elemen senarai secara manual.
Sebagai contoh, diberi time_interval = [4, 6, 12], pengguna bertujuan untuk hitung [4, 4 6, 4 6 12] untuk mendapatkan jumlah kumulatif t = [4, 10, 22].
Pendekatan Manual:
Pengguna pada mulanya mencuba pendekatan manual dengan mengulangi senarai dan mengumpul jumlah:
t1 = time_interval[0] t2 = time_interval[1] + t1 t3 = time_interval[2] + t2 print(t1, t2, t3) # -> 4 10 22
Pendekatan ini, bagaimanapun, memerlukan lelaran yang jelas dan mungkin menjadi membosankan untuk yang lebih besar senarai.
Pelaksanaan Numpy:
Jika anda kerap melakukan operasi berangka pada tatasusunan, numpy ialah perpustakaan yang sangat disyorkan yang menyediakan fungsi terbina dalam untuk penjumlahan kumulatif: cumsum . Menggunakan numpy, jumlah terkumpul boleh dikira dengan cekap:
import numpy as np a = [4, 6, 12] np.cumsum(a) #array([4, 10, 22])
Perbandingan Prestasi:
Numpy selalunya mengatasi pelaksanaan python tulen untuk operasi berangka tersebut. Perbandingan antara cumsum numpy dan fungsi pengumpulan manual pengguna (accumu) menunjukkan perbezaan:
In [136]: timeit list(accumu(range(1000))) 10000 loops, best of 3: 161 us per loop In [137]: timeit list(accumu(xrange(1000))) 10000 loops, best of 3: 147 us per loop In [138]: timeit np.cumsum(np.arange(1000)) 100000 loops, best of 3: 10.1 us per loop
Walaupun numpy mungkin memperkenalkan kebergantungan, kecekapannya mungkin membenarkan penggunaannya jika anda kerap melakukan operasi berangka yang serupa.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Jumlah Terkumpul Senarai Berangka dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!