Pet*_*nch 5 python arrays numpy
无法在字符串数组中使用numpy查找nan条目,我的代码是:
for x in X_cat:
if x == np.nan:
print('Found')
Run Code Online (Sandbox Code Playgroud)
我知道事实上列表中有2个nan条目,但是代码运行时没有打印任何内容。如果将np.nan替换为“ nan”,则相同。我的最终目标是使用最常见的字符串替换nan。
在字符串数组中,只能执行字符串比较。您必须以字符串格式初始化 nan。
nan_str = str_np.array([np.nan]).astype(str)[0]
Run Code Online (Sandbox Code Playgroud)
并通过初始化一个数组,就像你所描述的那样:
x = np.array(['hello', np.nan, 'world', np.nan], dtype=object)
Run Code Online (Sandbox Code Playgroud)
然后,您可以将它们替换nan为我认为最常见的字符串mostcommonstring:
x[np.where(x.astype(str)==str_nan)]='mostcommonstring'
Run Code Online (Sandbox Code Playgroud)
那是因为将任何东西与进行比较NaN,包括 NaN, 都是False。所以即使x是np.nan,也print不会运行。(事实上,这曾经是一种可接受的检查某些东西是否存在的方法,因为NaN没有其他 IEEE754 浮点值具有该属性。)
用于np.isnan(x)检查是否x为NaN。
| 归档时间: |
|
| 查看次数: |
739 次 |
| 最近记录: |