この記事では、【pythonの配列データから、その配列の各データを積算した配列の作り方】をご紹介します。
ただ単にやりかただけをご紹介しても味気ないので、今回は以下のグラフような【あるお店の時間あたりの来客数データ】から、
以下のグラフのような【各時刻における積算来客数のデータ】を作成してみようと思います。
積算データの作り方に加えて、matplolibを使ったグラフ作成も同時に学べる内容になっています。
ぜひ最後までご覧ください。
それでは早速やっていきましょう。
積算データを作成する’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()
こいつを実行すると、冒頭に紹介したように以下の二つの画像を作成することができました。
右側のグラフは時刻の経過にしたがって数値が上昇しており、しっかりと積算値になっていることがわかると思います。
matplotlibでのグラフ作成方法について詳しく知りたい方は以下の記事を参考にしてみてください。
【python】matplotlibを使ったグラフ作成演習!初心者向け!
一連のサンプルコードを紹介
最後にここまで小分けにして紹介したコードを一括で記載しておきます。
#ライブラリインポート
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の使い方を実際の事例をつかってご紹介しました。
データ分析の際などにぜひご活用ください。
このように、私のブログでは様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村
それではまた!
Follow @HigashiSalary
コメント