Heim >Backend-Entwicklung >Python-Tutorial >Python vergleicht zwei Zeitreihen, um festzustellen, ob sie grafisch ähnlich sind
Um grafisch zu vergleichen, ob zwei Zeitreihen ähnlich sind, können Sie die folgende Methode verwenden:
Es ist zu beachten, dass die Ähnlichkeit in Grafiken nicht vollständig die Ähnlichkeit zwischen zwei Zeitreihen widerspiegelt, da dieselbe Grafik unterschiedlichen Zeitreihen entsprechen kann. Daher müssen beim Vergleich von Zeitreihen mehrere Informationsaspekte umfassend berücksichtigt werden.
Bevor Sie beginnen, müssen Sie sicherstellen, dass Python und pip erfolgreich auf Ihrem Computer installiert wurden: Super Detaillierte Python-Installationsanleitung, um mit der Installation fortzufahren.
(optional 1) Wenn Sie Python für die Datenanalyse verwenden, können Sie Anaconda direkt installieren: Anaconda, ein guter Helfer für Python-Datenanalyse und -Mining, verfügt über integriertes Python und pip.
# 🎜🎜#(optional 2) Darüber hinaus wird die Verwendung des VSCode-Editors empfohlen, der viele Vorteile bietet: Der beste Partner für die Python-Programmierung – VSCode Detaillierte Anleitung. Bitte wählen Sie eine der folgenden Methoden, um Befehle zum Installieren von Abhängigkeiten einzugeben: 1. Windows-Umgebung Öffnen Sie Cmd (Start-Ausführen-CMD). 2. MacOS-Umgebung Öffnen Sie Terminal (Befehl+Leertaste, um Terminal aufzurufen). 3. Wenn Sie den VSCode-Editor oder Pycharm verwenden, können Sie direkt das Terminal am unteren Rand der Benutzeroberfläche verwenden.pip install matplotlib pip install numpy2 Verwenden Sie Matplotlib, um zwei Zeitreihen visuell zu vergleichen
import matplotlib.pyplot as plt # 生成时间序列数据 x = [1, 2, 3, 4, 5] y1 = [10, 15, 13, 17, 20] y2 = [8, 12, 14, 18, 22] # 绘制两个时间序列的折线图 plt.plot(x, y1, label='y1') plt.plot(x, y2, label='y2') # 设置图形属性 plt.xlabel('Time') plt.ylabel('Value') plt.title('Comparison of two time series') plt.legend() # 显示图形 plt.show()# 🎜🎜#3 . Berechnen Sie den Korrelationskoeffizienten von zwei Zeitreihen:
import numpy as np # 生成时间序列数据 x = [1, 2, 3, 4, 5] y1 = [10, 15, 13, 17, 20] y2 = [8, 12, 14, 18, 22] # 计算相关系数 corr = np.corrcoef(y1, y2)[0, 1] # 输出结果 print('Correlation coefficient:', corr)
import numpy as np # 生成时间序列数据 x = [1, 2, 3, 4, 5] y1 = [10, 15, 13, 17, 20] y2 = [8, 12, 14, 18, 22] # 动态时间规整算法 def dtw_distance(ts_a, ts_b, d=lambda x, y: abs(x - y)): DTW = {} # 初始化边界条件 for i in range(len(ts_a)): DTW[(i, -1)] = float('inf') for i in range(len(ts_b)): DTW[(-1, i)] = float('inf') DTW[(-1, -1)] = 0 # 计算DTW矩阵 for i in range(len(ts_a)): for j in range(len(ts_b)): cost = d(ts_a[i], ts_b[j]) DTW[(i, j)] = cost + min(DTW[(i-1, j)], DTW[(i, j-1)], DTW[(i-1, j-1)]) # 返回DTW距离 return DTW[len(ts_a)-1, len(ts_b)-1] # 计算两个时间序列之间的DTW距离 dtw_dist = dtw_distance(y1, y2) # 输出结果 print('DTW distance:', dtw_dist)
Das obige ist der detaillierte Inhalt vonPython vergleicht zwei Zeitreihen, um festzustellen, ob sie grafisch ähnlich sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!