NumPy와 데이터 스무딩

데이터 다듬기

해닝 함수를 사용할 수있다 사용할 수있는 데이터가 원활하게 변화하도록 이동 평균., 노이즈 데이터를 처리하는 데 사용

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]

 

추천

출처www.cnblogs.com/draven123/p/11392070.html