Advertisement
Kemudraj

serii_zad1

Aug 22nd, 2017
892
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 27.31 KB | None | 0 0
  1. 'p_' + str(p) for p in percentiles_list]
  2.     if iqr and 25 in percentiles_list and 75 in percentiles_list:
  3.         names.append('iqr')
  4.     if amplitude and 1 in percentiles_list and 99 in percentiles_list:
  5.         names.append('perc_amp')
  6.     if len(x) == 0:
  7.         values = [0 for i in range(len(names))]
  8.         return values, names
  9.     if len(percentiles_list) > 0 and all([0 < q < 100 for q in percentiles_list]):
  10.         values = list(np.percentile(x, percentiles_list))
  11.     else:
  12.         values = []
  13.     if iqr:
  14.         q1 = percentiles_list.index(25)
  15.         q3 = percentiles_list.index(75)
  16.         values.append(values[q3] - values[q1])
  17.     if amplitude and 1 in percentiles_list and 99 in percentiles_list:
  18.         q1 = percentiles_list.index(1)
  19.         q3 = percentiles_list.index(99)
  20.         values.append(values[q3] - values[q1])
  21.         return values, names
  22.  
  23.  
  24. def stats_calculate_all(X_data):
  25.     stats_all_names = stats_all_names = ['len', 'min', 'max', 'range', 'mean', 'hmean', 'gmean', 'var', 'std', 'skew',
  26.                                          'kurtosis', 'median', 'mode', 'energy', 'energy_sample', 'snr']
  27.  
  28.     xnp = np.array(X_data)
  29.     n = len(X_data)
  30.     if n == 0:
  31.         values = [0 for i in range(len(stats_all_names))]
  32.         return values, stats_all_names
  33.     values = []
  34.     vmin = float(min(xnp))
  35.     if vmin < 1:
  36.         offset = 1 + abs(vmin)
  37.     else:
  38.         offset = 0
  39.     vmax = float(max(xnp))
  40.     #vrange = vmax - vmin
  41.     vmean = float(np.mean(xnp))
  42.     vstd = float(np.std(xnp))
  43.     #venergy = float(sum(np.array(xnp) ** 2))
  44.     #venergy_sample = venergy / n
  45.     #snr = 0.0
  46.     #if vstd != 0: snr = vmean / vstd
  47.     values.append(vmin)
  48.     values.append(vmax)
  49.     #values.append(vrange)
  50.     values.append(vmean)
  51.     # values.append(float(sp.hmean(xnp + offset)))
  52.     # values.append(float(sp.gmean(xnp + offset)))
  53.     # values.append(vstd ** 2)
  54.     values.append(vstd)
  55.     # values.append(sp.skew(xnp))
  56.     # values.append(sp.kurtosis(xnp))
  57.     #values.append(np.median(xnp))
  58.     # vmode = sp.mode(xnp)
  59.     # vmode = float(vmode[0][0])
  60.     # values.append(vmode)
  61.     # values.append(venergy)
  62.     # values.append(venergy_sample)
  63.     #values.append(snr)
  64.     return values, stats_all_names
  65.  
  66.  
  67. if __name__ == "__main__":
  68.      x = np.array(X_data)
  69.  
  70.     # vasiot kod tuka
  71.      shift=input()
  72.      w_long=input()
  73.      #print(x.shape)
  74.      #print(x[:10, 0].shape)
  75.      #print(x[:10, 0])
  76.      #print(sorted(x[:10, 0]))
  77.      #print(stats_calculate_all(x[:10, 0]))
  78.      #print(percentiles_all(x[:10, 0], iqr=False, amplitude=False, percentiles_list=[10, 20, 50, 70, 90]))
  79.      #shift = 50
  80.      #w_long=100
  81.      #w_short = 20
  82.      for i in range(w_long, len(X_data), shift):
  83.         row=[]
  84.         for j in range(x.shape[1]):  
  85.             #x.shape[1]
  86.             x_winow_long = x[i - w_long:i,j]
  87.             #x_winow_short = x[i - w_short:i, j]
  88.             #p1 = percentiles_all(x_winow_long)
  89.             #p2 = percentiles_all(x_winow_short)
  90.             s1, stat_names = stats_calculate_all(x_winow_long)
  91.             #s2, _ = stats_calculate_all(x_winow_short)
  92.             #s2=round((s1),2)
  93.             #long_MVA = s1[4]
  94.             row+=s1
  95.             #print(s1,row)
  96.             #short_MVA = s2[4]
  97.         row3=[round(r,2) for r in row]
  98.         print(i,row3)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement