Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mengira Jumlah Terkumpul Senarai Berangka dengan Cekap?

Bagaimanakah Saya Boleh Mengira Jumlah Terkumpul Senarai Berangka dengan Cekap?

Mary-Kate Olsen
Lepaskan: 2024-12-08 08:49:10
asal
986 orang telah melayarinya

How Can I Efficiently Calculate the Cumulative Sum of a Numerical List?

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
Salin selepas log masuk

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])
Salin selepas log masuk

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
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan