我在数据分析方面遇到了一些问题。我有大量的数据写如下:
-0,30273438;-0,06835938;
-0,29785156;-0,05371094;
-0,28320313;-0,04882813;
-0,28808594;-0,06347656;
-0,27343750;-0,03417969;
-0,24414063;-0,03906250;
-0,24414063;-0,01464844;
我写了一个小程序,用于构建2个向量的图形:
import csv
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import numpy as np
x = []
y = []
with open('20283.dat', newline='') as csvfile:
trash = csv.reader(csvfile, delimiter=';')
for row in trash:
x.append(float(row[0].replace(",", ".")))
y.append(float(row[1].replace(",", ".")))
#print(x)
z = len(x)
#print(t)
t = np.arange(z)
plt.figure(1)
plt.plot(t,x, label='signal')
plt.xlabel('timing')
plt.ylabel('x')
plt.title('First channel')
plt.legend()
plt.figure(2)
plt.plot(t,y, label='signal')
plt.xlabel('timing')
plt.ylabel('y')
plt.title('Second channel')
plt.legend()
plt.show()
如何获得幅度和相位谱?以及如何实现可自定义的简单移动平均滤波器(窗口大小,时间步长,启动和停止点)?
答案 0 :(得分:0)
对于python numpy
和scipy
通常是您想要寻找线性代数的地方。
对于移动窗口函数,请查看pandas
它与numpy
可以完全互操作,并以有用的方式扩展numpy
功能。
https://docs.scipy.org/doc/numpy-dev/user/quickstart.html