NumPy Сглаживание данных

осреднение данных

Используется для обработки зашумленных данных, так что данные изменения более плавно. Скользящие средние могут быть использованы, могут быть использованы функции HANNING

Key_Function

Функция np.hanning: это взвешенное функция окна косинус, косинус эквивалентно скользящего среднего

np.polysub функции: коэффициенты полинома входной два массива, массив обратных коэффициентов полинома представляет собой разность двух многочленов

np.isreal функции: определение, является ли реальные элементы массива

np.select функция: данное условие, выбранное из множества элементов, чтобы соответствовать условиям композиции и массив возврата

np.trim_zeros функция: удалить одномерный массив элементов от 0 до начала или конца

Код

Импорт NumPy AS NP
 Import matplotlib.pyplot AS PLT 

N =. 8 
веса = np.hanning (N)
 , печати (веса)
 '' ' 
[из 0. 0,1882551 0,61126047 0,95048443 0,95048443 0,61126047 
  0,1882551 из 0.] 
' '' 

# в соответствии с настоящим вариантом осуществления используется в закрытии одновалентный 
ВНР = np.loadtxt ( ' BHP.csv ' , Разделитель = ' ' , usecols = (6,), распаковка =. True) 
bhp_returns = np.diff (BHP) / BHP [: -. 1 ]
 Печать (LEN (bhp_returns ))
 # 29
smooth_bhp = np.convolve (вес / weights.sum (), bhp_returns) [N-1: -N + 1 ]
 # 使用归一化的весов作为权重 
Vale = np.loadtxt ( ' VALE.csv ' , разделитель = ' , ' , usecols = (6,), распаковывать = True) 
vale_returns = np.diff (Вейл) / Вейл [: - 1 ] 
smooth_vale = np.convolve (вес / weights.sum (), vale_returns) [N-1: -N + 1 ] 

т = np.arange (N-1 , длина (bhp_returns)) 
plt.plot (т, bhp_returns [N - 1:], Lw = 1,0 ) 
plt.plot (т, smooth_bhp, ЛМ = 3,0 ) 
plt.plot (т, vale_returns [N - 1:], ЛМ = 5,0 )
plt.plot (т, smooth_vale, ЛМ = 7,0 ) 
plt.show ()

Код доступа выше

# Полиномиальной подходит к данным после сглаживающего 
K = 8. 
T = np.arange (. 1-N , длина (bhp_returns)) 
poly_bhp = np.polyfit (Т, smooth_bhp, К) 
poly_vale = np.polyfit (Т, smooth_vale, К ) 

# Решение пересечение двух кривых 
# с помощью разностного два полинома, то полученный многочлен укоренение 
poly_sub = np.polysub (poly_bhp, poly_vale) 
xpoints = np.roots (poly_sub)
 '' ' 
[0 + 27.73321597 + +24,32064343 +27,51284094 0.j. J 0.j 
  +18,86423973 +12,43797190 + 0.j 1.73218179j 12.43797190-1.73218179j 
   6.34613053 + 0.62519463j 6.34613053-0.62519463j] 
'' ' 

Реалы = np.isreal (xpoints The)
печать (реалов)
 # [True True True True ЛОЖЬ ЛОЖЬ ЛОЖЬ ЛОЖЬ] 

xpoints = np.select ([реалов], [xpoints])
 печать (xpoints)
 ''» 
[+27,73321597 + 0.j +27,51284094 + 0.j +24,32064343 + 0 .j +18,86423973 + 0.j 
   0,00000000 0,00000000 + 0.j + 0.j 0,00000000 0,00000000 + 0.j + 0.j] 
'' ' 
xpoints = xpoints.real
 печать (xpoints)
 ''' 
[27,73321597 27,51284094 24,32064343 18,86423973 0. 0. 0. 
   0.] 
''» 

печати (np.trim_zeros (xpoints))
 # [27,73321597 27,51284094 24,32064343 18,86423973]

 

рекомендация

отwww.cnblogs.com/draven123/p/11392070.html