首頁 > 後端開發 > Python教學 > 如何有效率地計算數值列表的累加和?

如何有效率地計算數值列表的累加和?

Mary-Kate Olsen
發布: 2024-12-08 08:49:10
原創
986 人瀏覽過

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

如何有效率地計算清單中數字的累積和

在處理數值資料時,經常需要計算清單中數字的累積和清單中的數字。在這裡,我們提供了一個全面的解決方案,並解決了使用者嘗試手動對清單元素求和時提出的問題。

例如,給定 time_interval = [4, 6, 12],使用者的目標是計算 [4, 4 6, 4 6 12] 得到累積和 t = [4, 10, 22].

手動方法:

使用者最初透過迭代列表並累加總和來嘗試手動方法:

t1 = time_interval[0]
t2 = time_interval[1] + t1
t3 = time_interval[2] + t2
print(t1, t2, t3)  # -> 4 10 22
登入後複製

然而,這種方法需要明確迭代,並且對於較大的情況可能會變得乏味

Numpy實作:

如果你經常對陣列進行數值運算,numpy 是一個強烈建議的函式庫,它提供了一個用於累積求和的內建函數:cumsum 。使用 numpy,可以有效率地計算累積和:

import numpy as np

a = [4, 6, 12]

np.cumsum(a)
#array([4, 10, 22])
登入後複製

效能比較:

對於此類數值運算,Numpy 通常優於純 Python 實作。 numpy 的cumsum 和使用者手動累積函數(accumu) 之間的比較顯示了差異:

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
登入後複製

雖然numpy 可能會引入依賴關係,但如果您經常執行類似的數值運算,它的效率可能會證明它的使用是合理的。

以上是如何有效率地計算數值列表的累加和?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板