2016-06-09 2 views
1

파생 상품을 계산할 때 np.gradient를 사용하려고하지만 이상한 결과가 발생하고이를 올바르게 사용하여 오류를 제거 할 수 있는지 확인하고 싶습니다.np.gradient - 올바른 사용?

A는 균등하게 이격 된 (그러나 단일가 아닌) x 값 데이터 범위에 대해 함수 y (x)를가집니다.

deriv = np.gradient(y, dx) 

올바른 응용 프로그램이 있습니까? 매우 야생적인 일부 값은 내 결과에 머물러있어 개발중인 모델에서이 함수를 반복 할 때만 악화됩니다.

+0

이 샘플 D의 조각을 제공 할 수 있습니다 아타? 그리고 당신이 얻은 유선 결과? 일반적으로 귀하가 묘사 한 내용에 따라 올바르게 사용하고 있습니다. – MaThMaX

+0

데이터는 등 간격으로 샘플링 된 전류의 2E5 값을 갖는 1D 어레이입니다 (my x 배열). 이상한 값은 가끔씩 커다란 스파이크 (불량 점)이며 결과적으로 내 모델의 연속 반복에서 수와 크기가 증가합니다. –

+0

현재 신호를 클러스터하려면, 다음과 같은 종류의 간단한 알고리즘을 클러스터하지 말아야합니다. 또는'gradient' 함수를 실행하기 전에 신호를 부드럽게 할 수 있습니까? – MaThMaX

답변

0

나에게 맞는 것 같습니다. 죄의 파생은 cos입니다. 내 sin 함수의 np.gradient을 그릴 때 cos로 직접 그릴 때와 동일하게 보입니다.

예 :

import numpy as np 
import pandas as pd 

x = np.arange(-2 * np.pi, 2 * np.pi, 0.01) 
y = np.sin(x) 
pd.Series(y).plot() 

enter image description here

y2 = np.gradient(y, 0.01) 
pd.Series(y2).plot() 

enter image description here

y3 = np.cos(x) 
pd.Series(y3).plot() 

enter image description here