ホームページ >バックエンド開発 >Python チュートリアル >数値リストの累積合計を効率的に計算するにはどうすればよいですか?

数値リストの累積合計を効率的に計算するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-10 22:24:12887ブラウズ

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

リスト内の数値の累積和を効率的に計算する

コンピューター プログラミングでは、多くの場合、リスト内の数値の累積和を計算する必要があります。リスト。これは、リスト内の各数値を前の合計に加算するプロセスを指します。たとえば、元のリストに [4, 6, 12] が含まれている場合、累積合計は [4, 10, 22] になります。

簡単なアプローチの 1 つは、リストを手動でループして累積合計を更新することです。次の手順を使用します:

t1 = time_interval[0]
t2 = time_interval[1] + t1
t3 = time_interval[2] + t2
ただし、このアプローチは、特に大きなリストの場合、非効率的になる可能性があります。配列を含む複雑な数値演算の場合は、Numpy などのライブラリを利用することをお勧めします。 Numpy は、累積合計を計算するためのcumsum と呼ばれる特殊な関数を提供します。

import numpy as np

a = [4, 6, 12]

np.cumsum(a)  # Output: array([4, 10, 22])
Numpy は、次のベンチマークで明らかなように、純粋な Python 実装よりもパフォーマンスに大きな利点があります。

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
while Numpyは強力ですが、必要な演算が累積和のみの場合は必要ない場合があります。ただし、プロジェクトに大規模な数値演算が含まれる場合は、検討する価値があります。

以上が数値リストの累積合計を効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。