当numpy dtype为“object”时将nan转换为零

2024-04-20 13:15:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含nan的numpy数组。我试图用

 X_ = np.nan_to_num(X_, copy = False)

但没用。我怀疑是因为X的数据类型是object。我试图用

^{pr2}$

但那也没用

当有一个dtype转换为零对象时有没有方法?在


Tags: to对象方法numpyfalseobjectnp数组
3条回答
a  = [np.nan]
b = np.array(a)
c = np.nan_to_num(b)
print(b)
print(c)

结果:

^{pr2}$

它起作用了。检查你的X格式。在

似乎由于对象类型的原因,无法转换为float。可能有点老套,但您可以尝试转换为str:

X_.astype(str).replace('np.NaN', 0).astype(float)

如果数组只包含“合理”(见下文)元素,则可以使用以下解决方法:

np.where(X_==X_,X_,0)

我的意思是元素e满足e==e,唯一的例外是nan。例如,如果没有用户定义的类用作元素,则应该是这种情况。在

相关问题 更多 >