AttributeError:“numpy.ndarray”对象没有属性“nan_to_num”

数据挖掘 Python scikit-学习 熊猫 随机森林 麻木的
2022-03-06 04:42:32

我正在尝试从sklearn运行随机森林模型,但我不断收到错误消息:ValueError: Input contains NaN, infinity or a value too large for dtype('float32').

我在 ValueError 中尝试了以下步骤:输入包含 NaN、无穷大或对于 dtype('float32') 来说太大的值

fillna(0)在我的熊猫数据框上仍然给出了 ValueError。

所以我尝试使用我的 numpy 数组:

val = setTo.ravel().nan_to_num(0)

但我不断收到错误消息:'numpy.ndarray' object has no attribute 'nan_to_num'

我想知道如果我有 ndarray,我该如何处理 nan 值?

非常感谢!

更新

非常感谢@Beniamin H 提供的所有帮助,根据建议,我召回了基于https://stackoverflow.com/questions/34771118/sklearn-random-forest-error-on-input和它的数据工作!

1个回答

您使用了正确的方法,但使用了错误的方法:)

nan_to_num是一种numpy模块方法,而不是numpy.ndarray. 因此,不要调用nan_to_num您的数据,而是在 numpy 模块上调用它,将您的数据作为参数:

import numpy as np
data = np.array([1,2,3,np.nan,np.nan,5])
data_without_nan = np.nan_to_num(data)

印刷:

array([1., 2., 3., 0., 0., 5.])

在您的示例中:

import numpy as np
val = np.nan_to_num(setTo.ravel())