데이터 다듬기
해닝 함수를 사용할 수있다 사용할 수있는 데이터가 원활하게 변화하도록 이동 평균., 노이즈 데이터를 처리하는 데 사용
Key_Function
기능 np.hanning : 그것은 이동 평균 가중 된 코사인 윈도우 함수, 코사인 상당
np.polysub 기능 : 다항식 계수 입력 개의 배열 리턴 다항식 계수의 어레이는 두 다항식의 차이를 나타낸다
np.isreal 함수 : 배열 요소가 진짜인지 판단
np.select 기능 : 조성물의 조건으로 복귀 배열을 충족시키는 요소들의 어레이로부터 선택된 소정의 조건
np.trim_zeros 기능 : 시작 또는 끝의 요소에 0의 1 차원 배열을 제거
암호
오기 NP AS NumPy와 오기 PLT AS matplotlib.pyplot N =. 8 가중치 = (N) np.hanning 인쇄 (가중치) '' ' [0의 0.1882551 0.61126047 0.95048443 0.95048443 0.61126047 0의 0.1882551이] ' '' # 개폐에 사용되는 본 실시 예에 따른 가의 BHP = np.loadtxt ( ' BHP.csv ' , DELIMITER = ' , ' , usecols = (6), 압축을 풀고 =. 참) bhp_returns = np.diff (BHP) / BHP [: -. 1 ] 인쇄 (LEN (bhp_returns )) # 29 smooth_bhp = np.convolve (중량 / weights.sum () bhp_returns) [N-1 : -N + 1 ] # 使用归一化重权作为가중치的 베일 np.loadtxt = ( ' VALE.csv ' , 구분 = ' , ' , usecols = (6), 언팩 = 참) vale_returns = np.diff (골짜기) / 베일 [를 - 1 ] smooth_vale = np.convolve (중량 / weights.sum () vale_returns) [N-1 : -N + 1 ] t = np.arange (N-1 , LEN (bhp_returns)) plt.plot (t, bhp_returns [N -1 :, LW = 1.0 ) plt.plot (t, smooth_bhp, LW = 3.0 ) plt.plot (t, vale_returns [N -1 :, LW = 5.0 ) plt.plot (t, smooth_vale, LW = 7.0 ) plt.show ()
위의 액세스 코드
# 다항식 평활화 후의 데이터에 맞추기 K =. 8 T = np.arange. (1-N , LEN (bhp_returns)) poly_bhp = np.polyfit (T, smooth_bhp, K) poly_vale = np.polyfit (T, smooth_vale, K ) #의 두 곡선의 교차점 해결 # 개의 다항식을 차분하여 후, 생성 다항식 활착 poly_sub = np.polysub (poly_bhp, poly_vale)는 xpoints =의 np.roots에게 (poly_sub) '' ' [0 + 27.73321597을 + + 24.32064343 27.51284094 0.j.의 0 ... J 1.73218179j 12.43797190-1.73218179j는 18.86423973 12.43797190 + + 0 ... 6.34613053 + 0.62519463j 6.34613053-0.62519463j] '' ' 레알 = np.isreal합니다 (를 xpoints) 인쇄 (실수) # [참 참 참 참 거짓 거짓 거짓 거짓] xpoints = np.select ([실수], [xpoints]) 인쇄 (xpoints) '' ' [0 ... 27.51284094 27.73321597 + + + 0 0 ... 24.32064343 .j 18.86423973 + 0 ... 0.00000000 + 0 ... 0 ... 0.00000000 0.00000000 + + + 0 ... 0 ... 0.00000000] '' ' 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]