繁体   English   中英

替换列表中的元素

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

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