Advertisement
Guest User

Untitled

a guest
Jan 19th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 24.70 KB | None | 0 0
  1. """
  2.    Calculates stats from the provided list xnp, based on the stats config object.
  3.    :param stat_config: Configuration for which stats to be computed.
  4.    :param x: The time series list.
  5.    :param offset: Offset of the values so some stats can be calculated
  6.    :return:
  7.    """
  8.     stats_all_names = ['len', 'min', 'max', 'range', 'mean', 'hmean', 'gmean', 'var', 'std', 'skew', 'kurtosis',
  9.                        'median', 'mode', 'energy', 'energy_sample', 'snr']
  10.  
  11.     xnp = np.array(x)
  12.     n = len(x)
  13.     if n == 0:
  14.         values = [0 for i in range(len(stats_all_names))]
  15.         return values, stats_all_names
  16.     values = []
  17.     vmin = float(min(xnp))
  18.     if vmin < 1:
  19.         offset = 1 + abs(vmin)
  20.     else:
  21.         offset = 0
  22.     vmax = float(max(xnp))
  23.     vrange = vmax - vmin
  24.     vmean = float(np.mean(xnp))
  25.     vstd = float(np.std(xnp))
  26.     venergy = float(sum(np.array(xnp) ** 2))
  27.     venergy_sample = venergy / n
  28.     snr = 0.0
  29.     if vstd != 0:
  30.         snr = vmean / vstd
  31.     values.append(vmin)
  32.     values.append(vmax)
  33.     #values.append(vrange)
  34.     values.append(vmean)
  35.     # values.append(float(sp.hmean(xnp + offset)))
  36.     # values.append(float(sp.gmean(xnp + offset)))
  37.     # values.append(vstd ** 2)
  38.     values.append(vstd)
  39.     # values.append(sp.skew(xnp))
  40.     # values.append(sp.kurtosis(xnp))
  41.     # values.append(np.median(xnp))
  42.     # vmode = sp.mode(xnp)
  43.     # vmode = float(vmode[0][0])
  44.     # values.append(vmode)
  45.     # values.append(venergy)
  46.     # values.append(venergy_sample)
  47.     # values.append(snr)
  48.     return values, stats_all_names
  49.  
  50.  
  51. if __name__ == "__main__":
  52.     x = np.array(X_data)
  53.     shift = input()
  54.     w_long = input()
  55.     arr_len = len(x[0, :])  #dolzinata na np X (np.array)
  56.     for i in range(int(w_long), len(X_data), shift): #zimame 50(w_long) reda od vkupno 700(len(X-data) so pomestuvanje 10(shift)
  57.         result=[] #prazna lista
  58.         for j in range(0,arr_len): #iterirame niz  prozorot
  59.             s,names = stats_calculate_all(x[i-w_long:i,j]) #zna calculete all mu ja davame datata od x so golemina i-w_long
  60.             result.extend([round(s[0],2), round(s[1],2), round(s[2],2), round(s[3],2)])
  61.         print (i,result)
  62.     # vasiot kod tuka
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement