gpt4 book ai didi

python - 如何处理 pandas 数据框中非常小的(-322 阶) float 值?

转载 作者:行者123 更新时间:2023-11-28 19:28:32 27 4
gpt4 key购买 nike

我有一个 pandas 数据框,其特征值非常小,数量级为 -322。我正在尝试标准化这些功能,但得到了

ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

数据框中的一些值如下:

3.962406e-321
3.310240e-322
3.962406e-321
3.310240e-322
3.962406e-321
3.310240e-322
3.962406e-321
3.310240e-322
3.962406e-321
3.310240e-322

我假设我正在处理值下溢问题。我该如何处理这个问题。

这适用于 python 3.6 和 pandas 数据框。

scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

DataFrame 中的值应根据需要进行标准化,但由于值下溢而出错。

最佳答案

将它们相乘。

你是对的:你的值是 too small for Pandas to handle as floats .最小 np.float64 值为 ~2.22e-308。您可以通过使用更晦涩的类型(例如 np.longdouble)来处理较小的值,但是 these have their limits too and can be system-dependent .

正如一些评论所指出的,大多数合理的用例不需要这么小的值。但如果您这样做了,绕过 float 边界的一种简单方法是将所有值乘以一个一致的整数,使它们处于可接受的 float 范围内(可能是 10^320)。您不会丢失任何信息,只是丢掉了一长串零。

注意:这仅在您不同时存储太大而无法乘法而不打破另一个方向的 float 限制的情况下才有效。但这似乎不太可能。

关于python - 如何处理 pandas 数据框中非常小的(-322 阶) float 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57399891/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com