Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'p_' + str(p) for p in percentiles_list]
- if iqr and 25 in percentiles_list and 75 in percentiles_list:
- names.append('iqr')
- if amplitude and 1 in percentiles_list and 99 in percentiles_list:
- names.append('perc_amp')
- if len(x) == 0:
- values = [0 for i in range(len(names))]
- return values, names
- if len(percentiles_list) > 0 and all([0 < q < 100 for q in percentiles_list]):
- values = list(np.percentile(x, percentiles_list))
- else:
- values = []
- if iqr:
- q1 = percentiles_list.index(25)
- q3 = percentiles_list.index(75)
- values.append(values[q3] - values[q1])
- if amplitude and 1 in percentiles_list and 99 in percentiles_list:
- q1 = percentiles_list.index(1)
- q3 = percentiles_list.index(99)
- values.append(values[q3] - values[q1])
- return values, names
- def stats_calculate_all(X_data):
- stats_all_names = stats_all_names = ['len', 'min', 'max', 'range', 'mean', 'hmean', 'gmean', 'var', 'std', 'skew',
- 'kurtosis', 'median', 'mode', 'energy', 'energy_sample', 'snr']
- xnp = np.array(X_data)
- n = len(X_data)
- if n == 0:
- values = [0 for i in range(len(stats_all_names))]
- return values, stats_all_names
- values = []
- vmin = float(min(xnp))
- if vmin < 1:
- offset = 1 + abs(vmin)
- else:
- offset = 0
- vmax = float(max(xnp))
- #vrange = vmax - vmin
- vmean = float(np.mean(xnp))
- vstd = float(np.std(xnp))
- #venergy = float(sum(np.array(xnp) ** 2))
- #venergy_sample = venergy / n
- #snr = 0.0
- #if vstd != 0: snr = vmean / vstd
- values.append(vmin)
- values.append(vmax)
- #values.append(vrange)
- values.append(vmean)
- # values.append(float(sp.hmean(xnp + offset)))
- # values.append(float(sp.gmean(xnp + offset)))
- # values.append(vstd ** 2)
- values.append(vstd)
- # values.append(sp.skew(xnp))
- # values.append(sp.kurtosis(xnp))
- #values.append(np.median(xnp))
- # vmode = sp.mode(xnp)
- # vmode = float(vmode[0][0])
- # values.append(vmode)
- # values.append(venergy)
- # values.append(venergy_sample)
- #values.append(snr)
- return values, stats_all_names
- if __name__ == "__main__":
- x = np.array(X_data)
- # vasiot kod tuka
- shift=input()
- w_long=input()
- #print(x.shape)
- #print(x[:10, 0].shape)
- #print(x[:10, 0])
- #print(sorted(x[:10, 0]))
- #print(stats_calculate_all(x[:10, 0]))
- #print(percentiles_all(x[:10, 0], iqr=False, amplitude=False, percentiles_list=[10, 20, 50, 70, 90]))
- #shift = 50
- #w_long=100
- #w_short = 20
- for i in range(w_long, len(X_data), shift):
- row=[]
- for j in range(x.shape[1]):
- #x.shape[1]
- x_winow_long = x[i - w_long:i,j]
- #x_winow_short = x[i - w_short:i, j]
- #p1 = percentiles_all(x_winow_long)
- #p2 = percentiles_all(x_winow_short)
- s1, stat_names = stats_calculate_all(x_winow_long)
- #s2, _ = stats_calculate_all(x_winow_short)
- #s2=round((s1),2)
- #long_MVA = s1[4]
- row+=s1
- #print(s1,row)
- #short_MVA = s2[4]
- row3=[round(r,2) for r in row]
- print(i,row3)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement