dtype的值太大(' float64')sklearn.preprocessing .StandardScaler()

时间:2017-08-25 17:02:34

标签: python scikit-learn data-processing

当我尝试在python中执行它时:

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)

我收到此错误:

  

ValueError:输入包含NaN,无穷大或太大的值   D型细胞(' float64&#39)

我知道有些帖子的标题相同,但大多数时候问题都是因为数据是 NaN ,这不是我的情况,因为我试过下面的函数告诉我是否有NaN或无穷大数字:

numpy.isfinite(X_train.all()) 

其中X_train是我的浮点阵列 (https://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.isfinite.html

以下是X_train中的数据类型。也许从-15到4000左右的这些数据的范围太宽,无法进行缩放?

  4068.725
  4035.808
  4067.000
  4051.697
412761.343
   101.905
  4050.460
  4067.000
   -15.303
     1.099
    52.363
    56.739
    68.997
    72.410
    62.171
  4052.077
  4033.867
    33.385
  4050.690
  4031.547
    19.143
    13.494
    11.298
    43.261

1 个答案:

答案 0 :(得分:1)

我的坏,我想

numpy.isfinite(X_train.all())

如果所有的值都是有限的而不是NaN,那么应该返回True,但它是假的。 找到偷偷摸摸的价值观的好方法太容易理解下面的代码:

np.argwhere(np.isnan(X_train))

(我在我的阵列中发现了一些NaN)。 谢谢你顺便纠正我的问题,user3666197,我在这里退出了一个新手。