我想在 jupyter Notebook 中用 python 實作 butterworthfilter。Python 對我來說是新的,我不知道為什么會出錯。我在這里搜索,但沒有找到解決方案。
資料來自 CSV 檔案,它呼叫 Samples.csv
Samples.csv 中的資料就像
998,4778415
1009,209592
1006,619094
1001,785406
993,9426543
990,1408991
992,736118
995,8127334
1002,381664
1006,094429
1000,634799
999,3287747
1002,318812
999,3287747
1004,427698
1008,516733
1007,964781
1002,680906
1000,14449
994,257009
該列呼叫Euclidian Norm. 資料范圍為 0 到 1679.286158,共 1838 行。
我寫了這段代碼,它來自一個教程。
from scipy.signal import filtfilt
from scipy import stats
import csv
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import scipy
def plot():
data=pd.read_csv('Samples.csv',sep=";")
sensor_data=data[['Euclidian Norm']]
sensor_data=np.array(sensor_data)
time=np.linspace(0,1679.286158,1838)
plt.plot(time, sensor_data)
plot.show()
plot()
我得到錯誤 TypeError: unhashable type: 'numpy.ndarray',plt.plot(time, sensor_data)它的行標記為黃色。
我不知道出了什么問題,因為我沒有在代碼中看到型別錯誤,有誰知道代碼中可能有什么問題?
uj5u.com熱心網友回復:
問題是您,在 CSV 檔案中用作小數點分隔符,但您沒有告訴 Pandas 您正在這樣做。
換線試試
data=pd.read_csv('Samples.csv',sep=";")
和
data=pd.read_csv('Samples.csv',sep=";", decimal=",")
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/512066.html
