일반적으로 사용자 지정 기능을 데이터에 맞추기 위해 Scipy.optimize.curve_fit을 사용합니다. 이 경우의 데이터는 항상 1 차원 배열입니다.Python : NxM 배열을위한 Scipy의 curve_fit?
2 차원 배열에 대해 비슷한 기능이 있습니까?
예를 들어, 10x10 numpy 배열이 있습니다. 그런 다음 몇 가지 물건을 수행하고 10x10의 numpy 배열을 만드는 함수가 있습니다. 결과 함수 인 10x10 배열이 입력 배열에 가장 잘 맞도록 함수에 맞추고 싶습니다. 그 newData의 데이터에 최대한 가깝도록
어쩌면 예는 더 :)data = pyfits.getdata('data.fits') #fits is an image format, this gives me a NxM numpy array
mod1 = pyfits.getdata('mod1.fits')
mod2 = pyfits.getdata('mod2.fits')
mod3 = pyfits.getdata('mod3.fits')
mod1_1D = numpy.ravel(mod1)
mod2_1D = numpy.ravel(mod2)
mod3_1D = numpy.ravel(mod3)
def dostuff(a,b): #originaly this is a function for 2D arrays
newdata = (mod1_1D*12)+(mod2_1D)**a - mod3_1D/b
return newdata
자 A와 B가 장착되어야한다. 내가 지금까지 가지고 무엇
:
data1D = numpy.ravel(data)
data_X = numpy.arange(data1D.size)
fit = curve_fit(dostuff,data_X,data1D)
그러나 인쇄에 맞게 만
(array([ 1.]), inf)
내가 배열의 일부 NaN을가 할, 어쩌면 문제를 이잖아 나에게 준다? 우선 까다로운 보일지 단수 xy
로 좌표 변환 쌍 (x, y)
g(x, y, ...) --> f(xy, ...)
:
예제 데이터가 있습니까? – Cleb
데이터 및 함수 출력을 병합하려 했습니까? 이렇게하면 curve_fit과 함께 작동하도록 1 차원으로 만들어야합니다. – kazemakase
나는 이것이 잘 될지 모르겠다. 내 경우 NxM numpy 배열은 이미지를 나타냅니다. 만약 내가 그것을 평평하게하면, 그 가장자리에서 매우 피팅에 좋지 않은 값으로 매우 날카로운 점프를 할 것입니다. – Pythoneer