0

マスクされた配列 の 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関数では問題ありません)。これは (既知の) バグですか?

4

1 に答える 1

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 の問題をすばやく調べましたが、このバグはそこにあるようには見えません。新しい問題を提起することをお勧めします:新しい問題

于 2012-11-02T13:38:21.580 に答える