2014-02-27 4 views
1

필자는 scipy.interpolate.bisplrep 및 scipy.interpolate.bisplev를 사용하여 작은 차이 집합을 기반으로 두 데이터 집합 간의 차이점에 대해 2D 회귀를 수행하려고합니다. 나는이 프로그램을 실행할 때SciPy의 공용 스플라인 보간 프로세스에서 "잘못된 입력 데이터"; interpolate.bisplrep에서 나쁜 결과가 나왔습니까?

splineRT = interp.bisplrep(diffPoints[0], diffPoints[1], RTdiffs) 
allDiffs = interp.bisplev(features[0], features[1], splineRT) 

, bisplev 불가사의 예외 "에 ValueError : 유효하지 않은 입력 데이터"오류 : 코드 오류 코드가 기본 _fitpack._bisplev 함수에서 반환에서 응답입니다. 나는 하나의 잘못된 설명을 자격을 알고 스플라인에 대해 거의 충분히 모르겠지만이 splineRT의 값을 보면 않은 : 나 한테 무슨 파업하는 것은

[array([ 367.51732902, 367.51732902, 367.51732902, 367.51732902, 
     911.4739006 , 911.4739006 , 911.4739006 , 911.4739006 ]), 
array([ 1251.8868, 1251.8868, 1251.8868, 1251.8868, 1846.2027, 
     1846.2027, 1846.2027, 1846.2027]), 
array([ -1.36687935e+04, 3.78197089e+04, -6.83863404e+04, 
     -7.25568790e+04, 4.90004158e+04, -1.11701213e+05, 
     2.02854711e+05, -1.67569797e+05, -7.22174063e+04, 
     1.27574330e+05, -2.33080009e+05, 2.80073578e+05, 
     3.37054374e+04, 1.89380033e+04, -1.81027026e+04, 
     -2.51210000e+00]), 
3, 
3] 

처음 두 요소 즉, 스플라인의 "매듭"을 의미하는 8 개의 요소는 각각 네 번 반복되는 유일한 두 개의 값으로 구성됩니다. 고유 한 값은 모두 해당 diffPoints 목록에 있지만 diffPoint는 모두 16 개의 고유 한 요소입니다.

여기 무슨 일 이니? 그리고/또는이 문제 또는 다른 문제입니까? 모든 도움을 주시면 감사하겠습니다.

EDIT : 여기에 버그 (?)가 실린 결과, 시작부터 끝까지 : https://www.dropbox.com/s/w758s7racfy9q4s/interpolationBug.txt입니다.

답변

2

이 문제에 대한 저의 과거 경험에서 bisplev이 작동하려면 features[0]features[1]을 오름차순으로 정렬해야합니다.