Pythonで累積和の問題を解く方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonで累積和の問題を解く方法について現役エンジニアが解説しています。累積和とは配列の要素にそれまでの数値を累積して足していくものです。ある期間のアクセス数や売り上げデータ集計などに使います。PythonではNumpyのcumsum関数を使うと便利です。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事が4,000以上あります。現役エンジニアの方はこちらをご覧ください。

Pythonで累積和の問題を解く方法について解説します。

そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonで累積和の問題を解く方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

累積和とは

ある配列Aを仮定します。
「配列Aの第1項から第N項までの部分列の和」を第N項とする配列Bを累積和といいます。(よって累積和も配列です)

例えば、配列[a, b, c, …]の累積和は[a, a+b, a+b+c, …]です。

Pythonで累積和を求める方法

例えば、以下のような関数で累積和を計算できます。

def cumsum(xs):
  result = [xs[0]]
  for x in xs[1:]:
    result.append(result[-1] + x)
  return result

以下のように使用します。

cumsum([0, 1, 2, 3, 4, 5])

実行結果は以下の通りです。

[0, 1, 3, 6, 10, 15]

 

[PR] Pythonで挫折しない学習方法を動画で公開中

Numpyのcumsum関数の使い方

数値計算ライブラリのNumpyにはcumsum関数が用意されていて、累積和の計算に利用できます。

実際に書いてみよう

import numpy
numpy.cumsum(numpy.array(xs))

実行結果は以下の通りです。

array([ 0,  1,  3,  6, 10, 15])

 

監修してくれたメンター

橋本紘希

システムインテグレータ企業勤務のシステムエンジニア。

開発実績: Javaプログラムを用いた業務用Webアプリケーションや、基幹システム用バッチアプリケーションなどの設計構築試験。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間でPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。