Joh*_*ews 5 python numpy python-3.x
我有一个字符串列表
x = ['A', 'B', nan, 'D']
Run Code Online (Sandbox Code Playgroud)
并希望删除nan.
我试过了:
x = x[~numpy.isnan(x)]
Run Code Online (Sandbox Code Playgroud)
但这只有在包含数字时才有效.我们如何在Python 3+中为字符串解决这个问题?
如果你有一个numpy的数组,你可以简单地检查的项目是不是字符串nan,但如果你有一个列表,你可以检查身份is和np.nan因为它是一个单独的对象.
In [25]: x = np.array(['A', 'B', np.nan, 'D'])
In [26]: x
Out[26]:
array(['A', 'B', 'nan', 'D'],
dtype='<U3')
In [27]: x[x != 'nan']
Out[27]:
array(['A', 'B', 'D'],
dtype='<U3')
In [28]: x = ['A', 'B', np.nan, 'D']
In [30]: [i for i in x if i is not np.nan]
Out[30]: ['A', 'B', 'D']
Run Code Online (Sandbox Code Playgroud)
或者作为一个功能方法,如果你有一个python列表:
In [34]: from operator import is_not
In [35]: from functools import partial
In [37]: f = partial(is_not, np.nan)
In [38]: x = ['A', 'B', np.nan, 'D']
In [39]: list(filter(f, x))
Out[39]: ['A', 'B', 'D']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2630 次 |
| 最近记录: |