[英]Replacing elements in a list
I have a list which is defined as follows: 我有一个列表,定义如下:
mean=[0,1,3,6,4,5,nan,456,nan,5,3,7,nan]
How do i replace all the values having nan to 0. 我该如何替换所有具有nan到0的值。
Assuming "nan" really is a NaN , you can't use ordinary comparisons to find them, NaN is not equal to any other number or NaN. 假设“ nan”确实是NaN ,则不能使用普通比较来找到它们,NaN不等于任何其他数字或NaN。 Yes, it's not equal to itself. 是的,它不等于自己。
So, you have to use math.isnan()
to do the checking: 因此,您必须使用math.isnan()
进行检查:
mean2 = [0 if math.isnan(x) else x for x in mean]
Assuming nan
is already a defined variable, then you can do: 假设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]
For NaN
referring Not a Number
: 对于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.