本文目录一览:
python中怎么把数据中inf转化为na
在使用numpy数组的过程中时常会出现nan或者inf的元素,可能会造成数值计算时的一些错误。这里提供一个numpy库函数的用法,使nan和inf能够最简单地转换成相应的数值。
numpy.nan_to_num(x):
使用0代替数组x中的nan元素,使用有限的数字代替inf元素
使用范例:
import numpy as np a = np.array([[np.nan,np.inf],\... [-np.nan,-np.inf]]) a
array([[ nan, inf],
[ nan, -inf]]) np.nan_to_num(a)
array([[ 0.00000000e+000, 1.79769313e+308],
[ 0.00000000e+000, -1.79769313e+308]])123456789
和此类问题相关的还有一组判断用函数,包括:
isinf
isneginf
isposinf
isnan
isfinite
使用方法也很简单,以isnan举例说明:
import numpy as np np.isnan(np.array([[1, np.nan, np.inf],\... [np.nan, -np.inf, -0.25]]))
array([[False, True, False],
[ True, False, False]], dtype=bool)
pythoninf怎么引入
引入步骤如下。
1、首先在PyCharm软件中,打开一个Python项目。
2、在Python项目中,新建并打开一个空白的python文件。
3、在python文件编辑区中,输入:importcmath,导入cmath模块。
认识python中的inf和nan
认识python中的inf和nan
python中的正无穷或负无穷,使用float("inf")或float("-inf")来表示。
这里有点特殊,写成:float("inf"),float("INF")或者float('Inf')都是可以的。
当涉及 和 比较时,所有数都比无穷小float("-inf")大,所有数都比无穷大float("inf")小。
相等比较时,float("+inf")与float("+inf")、float("inf")三者相等。即:
同样地,float("-inf") == float("-inf") 返回也是True。
简单的加,减,乘操作,还是会返回无穷。
特别地,0 * float('inf') 结果为:nan
float('inf') / float('inf') 结果为:nan
float('inf') - float('inf') 结果为:nan
float('-inf') - float('-inf') 结果也为:nan
nan代表Not A Number(不是一个数),它并不等于0
因为nan不是一个数,所以相关计算都无法得到数字。
所有涉及nan的操作,返回的都是nan。
结果都是:nan
比较操作时,返回的都是False
特别注意两个float('nan')并不相等!
python中可以用math.isinf()与math.isnan()来判断数据是否为inf或nan。
numpy中也有相类似的方法可用来判断数据。
动手测试题:
0 / float('inf') == 0 / float('-inf') 结果是True 还是False?
参考资料:
Python 关于正负无穷float(‘inf’)的一些用法
Stackoverflow.com上的问答:What is inf and nan?