Использование пространства строк и сглаживание

#python #numpy #smoothing

#python #numpy #сглаживание

Вопрос:

У меня возникли проблемы с запуском моей функции для сглаживания моей строки. У меня есть три отдельные переменные, которые я импортирую из своего csv-файла, и мне нужно сгладить строку. Используйте экспоненциальное сглаживание, чтобы удалить из сигналов как можно больше случайных и периодических шумов, не теряя важных характеристик базовых сигналов. Выберите отдельные временные константы для сглаживания каждого из отдельных сигналов. Представьте свои результаты графически.

Вот часть моего кода:

 from numpy import *                    
from scipy.stats import norm      
import csv                      
from matplotlib.pyplot import *  
from IPython.core.pylabtools import figsize  
#figsize(14, 7)
myID = 20155265
fn = str(myID) ".csv"
fn

data = np.genfromtxt("20155265.csv", delimiter=',', skip_header = 1)

smth1 = data[:,1]
smth2 = data[:,2]
smth3 = data[:,3]

def expSmooth(t,T,tau):        # returns a smoothed version of T with time constant tau
    tau = 0.01
    t = np.linspace(0, 1, 10540, 2)  # time of measurement
    T = smth1
    Ts = T.copy()              # another vector for the smoothed data
    for i in range(1,len(Ts)): # here's where the actual smoothing happens
        dt = t[i]-t[i-1]
        w = min(dt/tau,1)
        Ts[i] = Ts[i-1] * (1-w)   T[i] * w
    return Ts                  # return the smoothed data
    
plot(t,T)
plot(t,Ts, label = 'Smoothed Data')
xlabel('X-axis')
ylabel('Y-axis')
legend()
  

Я также получаю эту ошибку при ее запуске:

 ---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-27-97b29b6d5ee7> in <module>
     16     return Ts                  # return the smoothed data
     17 
---> 18 plot(t,T)
     19 plot(t,Ts, label = 'Smoothed Data')
     20 xlabel('X-axis')

~anaconda3libsite-packagesmatplotlibpyplot.py in plot(scalex, scaley, data, *args, **kwargs)
   2759 @docstring.copy(Axes.plot)
   2760 def plot(*args, scalex=True, scaley=True, data=None, **kwargs):
-> 2761     return gca().plot(
   2762         *args, scalex=scalex, scaley=scaley, **({"data": data} if data
   2763         is not None else {}), **kwargs)

~anaconda3libsite-packagesmatplotlibaxes_axes.py in plot(self, scalex, scaley, data, *args, **kwargs)
   1645         """
   1646         kwargs = cbook.normalize_kwargs(kwargs, mlines.Line2D)
-> 1647         lines = [*self._get_lines(*args, data=data, **kwargs)]
   1648         for line in lines:
   1649             self.add_line(line)

~anaconda3libsite-packagesmatplotlibaxes_base.py in __call__(self, *args, **kwargs)
    214                 this  = args[0],
    215                 args = args[1:]
--> 216             yield from self._plot_args(this, kwargs)
    217 
    218     def get_next_color(self):

~anaconda3libsite-packagesmatplotlibaxes_base.py in _plot_args(self, tup, kwargs)
    340 
    341         if x.shape[0] != y.shape[0]:
--> 342             raise ValueError(f"x and y must have same first dimension, but "
    343                              f"have shapes {x.shape} and {y.shape}")
    344         if x.ndim > 2 or y.ndim > 2:

ValueError: x and y must have same first dimension, but have shapes (10000,) and (10540, 2)
  

Файл здесь (образец):

 0.000000000000000000e 00,1.987649568467855232e 01,1.502770732591550562e 01,9.796532651620051269e 00
3.000284656988328846e-04,2.032588413582576692e 01,1.481391678788685518e 01,9.838773733555921552e 00
6.000569313976657692e-04,2.013795291324559145e 01,1.488696952239413029e 01,1.019210385573444100e 01
9.000853970964985996e-04,1.964606529847883110e 01,1.509763246836727113e 01,9.999835670287511746e 00
1.200113862795331538e-03,1.958979211177121371e 01,1.504942038590157338e 01,1.001807556622187967e 01
1.500142328494164477e-03,2.013860595459548009e 01,1.491842308020370567e 01,1.002097110595789431e 01
1.800170794192997199e-03,1.998167239030997777e 01,1.499645533912064010e 01,9.980793149246499851e 00
2.100199259891830355e-03,1.969884339061692202e 01,1.513994939974103282e 01,1.009387635287656337e 01
2.400227725590663077e-03,2.034433013515393185e 01,1.499177629776954745e 01,1.015006458706236359e 01
2.700256191289495799e-03,2.020764923596562568e 01,1.506159825939071339e 01,9.951152223719963885e 00
3.000284656988328955e-03,2.018453199942792864e 01,1.502803223857966231e 01,9.954336954252600123e 00
3.300313122687161677e-03,1.986644455611485682e 01,1.500975760158698868e 01,1.011627342579141775e 01
3.600341588385994399e-03,2.037481855217002291e 01,1.480681519737734853e 01,1.010520076861238259e 01
3.900370054084827554e-03,2.034613903815154146e 01,1.512797772833010335e 01,9.928197322515870837e 00
4.200398519783660710e-03,2.029763103912693012e 01,1.490699641094429140e 01,9.878651383161761501e 00
4.500426985482493432e-03,2.023957114424099757e 01,1.501257438050702397e 01,1.007540085537949359e 01
4.800455451181326154e-03,2.079433775809863860e 01,1.521317735549064665e 01,9.950279667926240634e 00
5.100483916880158876e-03,2.052803575990732554e 01,1.509758248396236979e 01,9.891986590075967811e 00
5.400512382578991598e-03,2.015682499321863119e 01,1.508489022657818523e 01,9.955164448148114076e 00
5.700540848277825187e-03,2.011819909355674696e 01,1.501075380973703943e 01,1.015537374721878905e 01
6.000569313976657909e-03,2.010649295602275188e 01,1.505906652977147964e 01,9.939615832465094059e 00
6.300597779675490631e-03,2.029240277512916890e 01,1.528788294973895390e 01,9.931050203825693146e 00
6.600626245374323353e-03,2.018988672364908155e 01,1.514912941994663598e 01,1.001967172353933222e 01
6.900654711073156075e-03,2.022259285851694699e 01,1.535320632721861323e 01,1.003319994573799079e 01
7.200683176771988797e-03,1.943010811933178061e 01,1.527350809725071734e 01,1.001153381953393051e 01
7.500711642470822386e-03,1.995908124651828430e 01,1.543542279981245002e 01,1.002018300551928753e 01
7.800740108169655108e-03,1.983987933411555460e 01,1.516848407834020485e 01,1.010803502461462067e 01```