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

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

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,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ではPythonを使って機械学習の基礎を学ぶPythonオンライン講座を開催しています。

初心者向けの書籍を使って人工知能(AI)や機械学習について学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。