DTWをpythonで実装しようと思い、コードを書いてみたのですがエラーが出てしまい、理由がわからないので教えていただきたいです。
python
1def dtw(vec1, vec2): #vec1とvec2は長さの異なる整数型配列 2 import numpy as np 3 d = np.zeros([len(vec1)+1, len(vec2)+1]) 4 d[:] = np.inf 5 d[0, 0] = 0 6 for i in range(1, d.shape[0]): 7 for j in range(1, d.shape[1]): 8 cost = abs(vec1[i-1]-vec2[j-1]) 9 d[i, j] = cost + min(d[i-1, j], 10 d[i, j-1], 11 d[i-1, j-1]) 12 return d[-1][-1] 13 print(d) 14import pandas as pd 15import numpy as np 16 17df = pd.read_csv('20070701_TMN0002_1s.csv_m.csv') 18df1 = pd.read_csv('20070701_TMN0069_1s.csv_m.csv') 19df2 = pd.DataFrame() 20df3 = pd.DataFrame() 21df = df.groupby(df.index // 60).mean() 22df1 = df1.groupby(df1.index // 30).mean() 23for i in range (23): 24 i += 1 25 df2.loc[i,0] = i 26 df2.loc[i,1] = df.iloc[i,1] + df.iloc[i,2] 27for i in range(47): 28 df3.loc[i,0] = i 29 df3.loc[i,1] = df1.iloc[i,1] + df1.iloc[i,2] 30print(df3) 31dtw(df2,df3)
print(df3)はきちんと表示がされます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/21 14:39