interp1d
は、scipy/interpolate/interpolate.py
で定義されています。デフォルトの「線形」の場合、2つの選択肢があります。
# Check if we can delegate to numpy.interp (2x-10x faster).
if (not np.issubdtype(self.y.dtype, np.complexfloating) and
self.y.ndim == 1 and
not _do_extrapolate(fill_value)):
self._call = self.__class__._call_linear_np
else:
self._call = self.__class__._call_linear
call_linear_np
はありません:コードをコンパイル
np.interp(x_new, self.x, self.y)
関数呼び出しを。ドキュメントでは、xp
が増加すると予想されていますが、実際にはこれをチェックしていません。
def _call_linear(self, x_new):
はすべてあなたが勉強することができるPythonのようです。
私が線形補間に期待しているものは何ですか?しかし、このコードは浮動小数点数で動作し、「正確な平等」は浮動小数点数で保証されていないことに注意してください。
質問をデフォルトの '線形'の種類に限定していますか? – hpaulj
現時点では、私は線形アルゴリズムにしか興味がありませんが、将来のために代替案が役に立つかもしれないという行動について知っています。 – drhagen