осреднение данных
Используется для обработки зашумленных данных, так что данные изменения более плавно. Скользящие средние могут быть использованы, могут быть использованы функции 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]