Python演習問題:トレンド解析の基礎 †
インポート・エイリアス設定 †
import numpy as np
import matplotlib.pyplot as plt
import datetime
import csv
from scipy import signal, interpolate
from datautil.parser import parse
問題 †
- csv(コンマ区切り)データ"dat_climate.csv"を読み込みなさい.
読み込みに使う関数は自由.
with open(filename,'r') as f:
f.readline()
csv.reader(f)
- 読み込んだ時間データ(文字列)を数値に変換しなさい.
parse(time_str)
- 不等間隔のデータを1日毎に補間しなさい.
下記に挙げるdatetime関数は必ずしも使わなくてよい.
datetime.timedelta(days=x)
totalseconds, datetime.datetime
interpolate.interp1d
- 補間データを元に,線形トレンドを求めて図にしなさい.
np.polyfit
np.polyval
- データのスペクトル解析を行い,固有日数(1/f)を求めなさい.
signal.welch(val, fs, nperseg=xxx)
signal.argrelmax
ax.semilogx
データ †
- csvファイル
1行目はヘッダー
2行目以降は日時,データ
解答例(参考) †
300〜400[days]で最も強い周期が現れればOKとする.
パラメータは試行錯誤.