Nan到Num Python
我有多重数组,我计算线性回归,但有时它会给我0/0的值,这会给我一个'NaN'。我知道,要转换一个数组,其中的数字是NaN,可以使用。但是如果我想转换一个不是数组中的值,而是线性回归的结果,该怎么办Nan到Num Python,python,arrays,numpy,nan,Python,Arrays,Numpy,Nan,我有多重数组,我计算线性回归,但有时它会给我0/0的值,这会给我一个'NaN'。我知道,要转换一个数组,其中的数字是NaN,可以使用。但是如果我想转换一个不是数组中的值,而是线性回归的结果,该怎么办 编辑:这不是一个重复的问题(),因为我指的是一个不在数组中的项目/结果您可以检查您选择的变量是否为NaN with。如果是,请将其更改为您选择的号码。像这样: >>> import math >>> x = float("nan") >>> x
编辑:这不是一个重复的问题(),因为我指的是一个不在数组中的项目/结果您可以检查您选择的变量是否为NaN with。如果是,请将其更改为您选择的号码。像这样:
>>> import math
>>> x = float("nan")
>>> x
nan
>>> if math.isnan(x):
... x = 123 # just an example
...
>>> x
123
numpy.nan_to_num
在标量上运行良好
>>> import numpy as np
>>> np.nan_to_num(float('inf'))
1.7976931348623157e+308
>>> np.nan_to_num(float('nan'))
0.0
>>> np.nan_to_num(float('-inf'))
-1.7976931348623157e+308
我理解如何转换
inf
和-inf
,但在许多情况下,当您有一个只适用于数字的处理管道时,您何时会想要将nan
转换为0
?@AlexBliskovsky,你根本不在乎偶尔的nan。如果OP想要精确匹配numpy.nan\u to_num
的行为,这并不完全正确-math.isnan(float('inf'))==False
,但是numpy.nan\u to_num
会将float('inf')
转换为一个大的数字,而不是保持原样。但是,如果OP只关心实际的NAN,那么这很好。实际上,这转换了值。但是,感谢senshin注意到这一点(和回答),也感谢@Carsten!谢谢将为数组提供的相同推理应用于标量值有什么问题?