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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-09 15:56:16206ブラウズ

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

Python の累積合計

質問:

次のようなリスト内の数値の累積合計を見つけるにはどうすればよいですか? [4、4 6、4 6 12]?

はじめに:

累積合計を計算するには、次の要素を累積合計に繰り返し加算する必要があります。これは単純なループで実現できますが、NumPy またはカスタム Python ジェネレーターを使用したより効率的なアプローチもあります。

NumPy メソッド:

NumPy のcumsum 関数は効率的なソリューションを提供します。 :

import numpy as np

time_interval = [4, 6, 12]
np.cumsum(time_interval)
# Output: [4, 10, 22]

このアプローチは高度に最適化されており、大規模な数値演算に推奨されます。 arrays.

Python ジェネレーター:

純粋な Python での簡潔でメモリ効率の高いソリューションについては、ジェネレーターの使用を検討してください:

def accumu(iterable):
    yield next(iterable)
    for item in iterable:
        yield item + sum(accumu(iterable))

これを使用ジェネレーター:

list(accumu(time_interval))
# Output: [4, 10, 22]

このジェネレーターは要素を遅延蓄積して、大規模なシーケンスの反復処理、またはメモリが懸念される場合に適しています。

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

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