2017-03-21 2 views
0

scipy의 보간을 특정 numpy dtype을 갖는 출력 배열로 강제 적용 할 수 있습니까?Scipy : 보간 dtype 변경

예를 들어, scipy.interpolate.Rbf()에서 float32 배열을 출력 하시겠습니까?

+0

무엇 DTYPE 당신은 지금 어떻게해야합니까? 그것은 입력의 dtype에 의존합니까? Python 코드는 몇 가지 유형 옵션 (예 : double)을 사용하여 루틴을 컴파일 할 수 있습니다. 반환 후 주조하는 것이 가장 좋은 방법 일 수 있습니다. – hpaulj

답변

0

아니요, 항상 float64 형식을 갖습니다. 다른 것을 들어, 출력을 .astype(np.float32) 등으로 수신 한 후에 캐스팅하십시오.

예를 들어 Rbf를 사용합니다. 입력 데이터로 수행하는 첫 번째 작업은 float64의 별명 인 np.float_으로 캐스팅합니다. As seen here :

self.xi = np.asarray([np.asarray(a, dtype=np.float_).flatten() 
          for a in args[:-1]]) 

보간 노드가 계산되므로 float64도됩니다. RBF 객체의 호출 방법은 입력 데이터를 캐스팅하지 않지만, NumPy와 때문에 self.nodes의 데이터 형, np.dot 내 어쨌든을 수행

return np.dot(self._function(r), self.nodes).reshape(shp) 
+0

이것은 불행한 행동입니다. 더 적은 수의 정밀도를 갖는 측정 데이터로부터 큰 래스터를 보간하려고 시도하면 64 비트 데이터 유형이 메모리 한계를 몇 번 더 빨리 도달하게 만듭니다. – benjimin

관련 문제