[英]Replacing elements in a list
我有一个列表,定义如下:
mean=[0,1,3,6,4,5,nan,456,nan,5,3,7,nan]
我该如何替换所有具有nan到0的值。
假设“ nan”确实是NaN ,则不能使用普通比较来找到它们,NaN不等于任何其他数字或NaN。 是的,它不等于自己。
因此,您必须使用math.isnan()
进行检查:
mean2 = [0 if math.isnan(x) else x for x in mean]
假设nan
已经是一个已定义的变量,则可以执行以下操作:
>>> nan="nan"
>>> mean=[0,1,3,6,4,5,nan,456,nan,5,3,7,nan]
>>> print([0 if i==nan else i for i in mean])
[0, 1, 3, 6, 4, 5, 0, 456, 0, 5, 3, 7, 0]
对于NaN
引用的Not a Number
:
>>> import math
>>> mean=[0,1,3,6,4,5,float("NaN"),456,float("NaN"),5,3,7,float("NaN")]
>>> print([0 if math.isnan(i) else i for i in mean])
[0, 1, 3, 6, 4, 5, 0, 456, 0, 5, 3, 7, 0]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.