【python】データの積算配列を作成する方法!np.cumsumについて!

この記事では、【pythonの配列データから、その配列の各データを積算した配列の作り方】をご紹介します。

 

ただ単にやりかただけをご紹介しても味気ないので、今回は以下のグラフような【あるお店の時間あたりの来客数データ】から、

以下のグラフのような【各時刻における積算来客数のデータ】を作成してみようと思います。

積算データの作り方に加えて、matplolibを使ったグラフ作成も同時に学べる内容になっています。

 

ぜひ最後までご覧ください。

 

それでは早速やっていきましょう。

スポンサーリンク

積算データを作成:np.cumsumについて

まず始めに、この記事の本題である

【ある配列データから、その配列の各データを積算した配列】を作成することができる

np.cumsumの使い方をご紹介します。

変数=np.cumsum(配列名)

超簡単ですね。

それでは実際に使ってみましょう。

スポンサーリンク

np.cumsumの使用例

要素を小分けにして説明し、最後に一連の流れをまとめたコードをご紹介します。

 

まずは必要なライブラリをインポート。

import numpy as np
import matplotlib.pyplot as plt

 

つぎは冒頭に述べたように時刻別の来客数データを読み込みます。

今回は以下のデータを読み込みました。

(同じ階層にdata.txtとして保存しています。)

hour num_people
10 3
11 15
12 30
13 13
14 6
15 2
16 0
17 5
18 20
19 23
20 14
21 4

 

このデータ読み込みコードは以下の通りです。

data=np.loadtxt('data.txt',skiprows=1)
x=data[:,0]
y=data[:,1]

xが時刻を表す配列、yがその時刻での来客数の配列になっています。

 

次はいよいよ本題であるnp.cumsumの登場です。

y2=np.cumsum(y)

はい、これでy2にyの積算データが格納されています。

超簡単ですね。

スポンサーリンク

グラフ化して確認

念のためnp.cumsumできちんと積算データが作成できているか確認しておきましょう。

グラフ作成コードは以下の通りです。

#時間あたりデータ
plt.plot(x,y)
plt.xlabel('hour',fontsize=14)
plt.ylabel('num_people/hour',fontsize=14)
plt.savefig("pic1.png", dpi=300)
plt.show()

#積算データ
plt.plot(x,y2)
plt.xlabel('hour',fontsize=14)
plt.ylabel('num_people_sum',fontsize=14)
plt.savefig("pic2.png", dpi=300)
plt.show()

 

こいつを実行すると、冒頭に紹介したように以下の二つの画像を作成することができました。

右側のグラフは時刻の経過にしたがって数値が上昇しており、しっかりと積算値になっていることがわかると思います。

スポンサーリンク

一連のコード

最後にここまで小分けにして紹介したコードを一括で記載しておきます。

#ライブラリインポート
import numpy as np
import matplotlib.pyplot as plt

#データ読み込み
data=np.loadtxt('data.txt',skiprows=1)
x=data[:,0]
y=data[:,1]
y2=np.cumsum(y)

#時間あたりデータ
plt.plot(x,y)
plt.xlabel('hour',fontsize=14)
plt.ylabel('num_people/hour',fontsize=14)
plt.savefig("pic1.png", dpi=300)
plt.show()

#積算データ
plt.plot(x,y2)
plt.xlabel('hour',fontsize=14)
plt.ylabel('num_people_sum',fontsize=14)
plt.savefig("pic2.png", dpi=300)
plt.show()

 

あなたの状況に応じて適宜変更してご利用ください。

スポンサーリンク

おわりに

というわけで今回は、pythonの配列データから、その配列の各データを積算した配列を作成するnp.cumsumの使い方を実際の事例をつかってご紹介しました。
 
データ分析の際などにぜひご活用ください。
 
このように私のブログでは様々なプログラミングスキルを紹介しています。
・もっと革新的なことをやりたい。
・プログラミングについてもっと詳しくなりたい。
こんな思いを持っている人は、ぜひ他の記事も見てみてくださいね。
 
この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村 IT技術ブログへ
にほんブログ村
それではまた!

コメント

タイトルとURLをコピーしました