【问题标题】:How can i solve the value too large for dtype('float32') error? Pandas如何解决 dtype('float32') 错误的值太大?熊猫
【发布时间】:2020-01-22 23:25:57
【问题描述】:

我有一个包含数字的数据集。但是当我尝试适应这个命令时:

model.fit(X_train, y_train)

我收到此错误:

输入包含 NaN、无穷大或对于 dtype('float32') 来说太大的值。

但我的数据集中没有空单元格。 未缩放数据_X

[[0 0 4 ... 0 -21.4 6]
 [1 0 2 ... 0 0.0 0]
 [0 0 2 ... 0 805.9 7]
 ...
 [1 0 2 ... 1 -20.2 0]
 [1 0 3 ... 1 1031.0 5]
 [0 1 3 ... 1 0.0 0]]

缩放后的 X_train 是这样的:

 [[ 0.64649731 -0.63390308  0.74842646  0.41698984 -0.65263096]
 [-1.54679684 -0.63390308 -0.6061627   0.41698984 -0.65263096]
 [ 0.64649731  1.57752823  0.07113188  0.41698984  0.7140774 ]
 ...
 [ 0.64649731 -0.63390308 -0.6061627   0.41698984 -0.65263096]
 [-1.54679684 -0.63390308  0.07113188  0.41698984  0.7140774 ]
 [ 0.64649731 -0.63390308  0.74842646  0.41698984 -0.65263096]]

当我从这个数据集中删除浮点数时,问题就解决了。 但这不是解决方案。 我该怎么做才能避免这种情况?

谢谢。

【问题讨论】:

  • 你的最大值和最小值是多少? float32 是否太大/太小???
  • 错误已经提示了该怎么做:imputation,即你需要用其他一些值替换NaN
  • 没有数字,我修复了@QuangHoang
  • NoneNaN 是两个不同的东西。
  • 当然我修复了 self.data[self.data==np.inf]=np.nan self.data.fillna(0, inplace=True)

标签: python pandas scikit-learn dtype


【解决方案1】:

尝试更改 float 32 的值:

X_train= np.float32(X_train)

和/或替换 Nan 和 inf:

X_train=np.nan_to_num(X_train, nan=-9999, posinf=33333333, neginf=33333333)

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 2022-06-13
    • 2015-08-25
    • 2019-10-19
    • 2020-08-23
    • 2019-04-10
    • 2019-11-27
    • 2018-08-24
    • 2021-12-11
    相关资源
    最近更新 更多