我有一个很长的元组列表,想要使用 Python 删除其中包含 nan 的任何元组。
我目前拥有的:
x = [('录音开始', 0), (nan, 4), (nan, 7), ..., ('事件标记1', 150)]
我正在寻找的结果:
x = [('录音开始', 0), ('事件标记1', 150)]
我尝试过使用 np.isnan 及其变体,但没有成功并不断收到错误:输入类型不支持 ufunc 'isnan',并且无法将输入安全地强制为任何受支持的类型铸造规则“安全”
任何建议,将不胜感激!!
您可以使用列表理解来检查元组中的任何项目是否为 NaN。检查是通过首先检查类型然后使用math.isnan https://docs.python.org/2/library/math.html#math.isnan因为它不适用于其他类型:
import math
x = [('Recording start', 0), (float('nan'), 4), (float('nan'), 7), ('Event marker 1', 150)]
res = [t for t in x if not any(isinstance(n, float) and math.isnan(n) for n in t)]
print(res)
Output:
[('Recording start', 0), ('Event marker 1', 150)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)