简体   繁体   English

替换列表中的元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM