numpyのデータ平滑化

データの平滑化

データをより滑らかに変化するように、ノイズの多いデータを処理するために使用される。移動平均を使用することができ、ハニング関数を使用することができます

Key_Function

機能をnp.hanning:それは移動平均加重コサインウィンドウ関数、余弦と同等です

np.polysub関数:多項式係数入力二つの配列、リターン多項式係数のアレイは、2つの多項式の差を表します

np.isreal機能:配列要素が本物であるかどうかを決定します

np.select関数:組成とリターンのアレイの条件を満たすように素子のアレイから選択された所定の条件

np.trim_zeros機能:最初または最後の要素に0の一次元アレイを削除

コード

インポートnumpyのNP AS
 インポートPLT AS matplotlib.pyplot 

N = 8点
の重み = np.hanning(N)
 プリント(重み)
 「」「
[0の0.1882551 0.61126047 0.95048443 0.95048443 0.61126047 
  0ザの0.1882551]を
」「」

、本実施形態に係るを閉鎖に使用されています一価 
BHP = np.loadtxt(' BHP.csv '、DELIMITER = ' '、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 ]
 使用归一化重权作为重み的 
ベール= np.loadtxt(' VALE.csv '、デリミタ= ' '、usecols =(6)=解凍true)を
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 )

#の2曲線の溶液交差点2つの多項式を差分することにより、得られる多項式発根 
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)
プリント(実数)
 [TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE] 

xpoints = np.select([実数]、[xpoints])
 プリント(xpoints)
 ''」
[+ 0 27.73321597 + 0.j 27.51284094 + 0.j 24.32064343 .J 18.86423973 + 0.j 
   0.00000000 + 0.j 0.00000000 + 0.j 0.00000000 + 0.j 0.00000000 + 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