掩码数组的Numpy.ma polyfit函数在整数输入上崩溃

时间:2012-11-02 13:07:05

标签: numpy curve-fitting polynomial-math maskedinput

掩码数组的{numpy多项式拟合函数ma.polyfit在整数输入时崩溃:

import numpy.ma as ma
x = ma.arange(2)
y = ma.arange(2)
p1 = ma.polyfit(np.float32(x), y, deg=1)
p2 = ma.polyfit(           x , y, deg=1)

最后一行导致错误:

ValueError: data type <type 'numpy.int64'> not inexact

为什么我不能用整数x值拟合数据(普通numpy.polyfit函数没问题),这是一个(已知的)错误吗?

1 个答案:

答案 0 :(得分:3)

确实来自numpy.ma的错误:rcond(排除某些值的参数)将len(x)*np.finfo(x.dtypes).eps作为默认值,np.int32没有任何错误eps字段(因为int没有相对精度)。

import numpy.ma as ma
eps = np.finfo(np.float32).eps 

x = ma.arange(2)
y = ma.arange(2)
p1 = ma.polyfit(np.float32(x), y, deg=1, rcond = len(x)*eps)
p2 = ma.polyfit(           x , y, deg=1, rcond = len(x)*eps)

我很快就看到了numpy的问题,而且这个bug似乎没有在那里找到。提出新问题可能是个好主意:New Issue