Advertisement
Guest User

Untitled

a guest
Jan 20th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 25.42 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. def stats_calculate_all(x):
  24.     stats_all_names = ['len', 'min', 'max', 'range', 'mean', 'hmean', 'gmean', 'var', 'std', 'skew', 'kurtosis',
  25.                        'median', 'mode', 'energy', 'energy_sample', 'snr']
  26.     xnp = np.array(x)
  27.     n = len(x)
  28.     if n == 0:
  29.         values = [0 for i in range(len(stats_all_names))]
  30.         return values, stats_all_names
  31.     values = []
  32.     # vmin = float(min(xnp))
  33.     # if vmin < 1:
  34.     #     offset = 1 + abs(vmin)
  35.     # else:
  36.     #     offset = 0
  37.     # vmax = float(max(xnp))
  38.     # vrange = vmax - vmin
  39.     vmean = float(np.mean(xnp))
  40.     vstd = float(np.std(xnp))
  41.     # venergy = float(sum(np.array(xnp) ** 2))
  42.     # venergy_sample = venergy / n
  43.     # snr = 0.0
  44.     if vstd != 0:
  45.        snr = vmean / vstd
  46.     # values.append(vmin)
  47.     # values.append(vmax)
  48.     # values.append(vrange)
  49.     values.append(vmean)
  50.     # values.append(float(sp.hmean(xnp + offset)))
  51.     # values.append(float(sp.gmean(xnp + offset)))
  52.     # values.append(vstd ** 2)
  53.     values.append(vstd)
  54.     # values.append(sp.skew(xnp))
  55.     #values.append(sp.kurtosis(xnp))
  56.     values.append(np.median(xnp))
  57.     # vmode = sp.mode(xnp)
  58.     # vmode = float(vmode[0][0])
  59.     # values.append(vmode)
  60.     # values.append(venergy)
  61.     # values.append(venergy_sample)
  62.     # values.append(snr)
  63.     return values, stats_all_names
  64.  
  65.  
  66. if __name__ == "__main__":
  67.     x = np.array(X_data)
  68.     w_long = input()
  69.     w_short = input()
  70.     shift = 20
  71.  
  72.  
  73.  
  74.     for i in range(max(w_long, w_short), len(X_data), 20):
  75.         results = []
  76.         for j in range(0, len(x[0, :])):
  77.             s, stat_names = stats_calculate_all(x[i-w_short:i,j])
  78.             s1, stat_names2 = stats_calculate_all(x[i - w_long:i, j])
  79.             results.append([s1[0], s1[2], s1[1], s[0], s[2], s[1], s1[0]-s[0]])
  80.             if s1[0] > s[0]:
  81.                 results.append(1)
  82.             else:
  83.                 results.append(-1)
  84.  
  85.         print (i, ['%.2f'% elem for elem in results])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement