問題:
数値のリストが与えられた場合、累積和を求めたいとします。 sum は、リストの先頭から数値を 1 つずつ合計することを意味します。たとえば、リスト [4, 6, 12] がある場合、[4, 4 6, 4 6 12] を取得すると、結果は [4, 10, 22] になります。
答え:
配列の数値演算については、強力な Python ライブラリである NumPy を検討することをお勧めします。便利な累積合計関数cumsum:
import numpy as np a = [4,6,12] np.cumsum(a) #array([4, 10, 22])
NumPyは、多くの場合、そのようなタスクでは純粋なPythonよりも優れたパフォーマンスを発揮します。ここでは、別の関数 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 には速度の利点がありますが、NumPy が単一のタスクにのみ必要な場合は、依存関係が必要ない可能性があることを覚えておくことが重要です。
以上がPython で数値リストの累積合計を効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。