首页 > 解决方案 > 如何在嵌套的numpy数组中用一行“NaN”替换带有浮点值的行?

问题描述

假设我有一个 numpy 数组:

a=np.array([[7,2,4],[1.2,7.4,3],[1.5,3.6,3.4]])

我的目标是用一行NaNs 替换包含浮点数的行,到目前为止这是我的尝试:

a[a.dtype==float]=np.nan

哪个有效,但只有第一行应该是NaN,第二行应该是NaN单独的。

所以我想要的输出看起来像:

[[ 7.   2.   4.]
 [ nan  nan  nan]
 [ nan  nan  nan]]

标签: pythonarraysnumpyreplacenan

解决方案


尝试四舍五入:

a[np.round(a)!=a] = np.nan
#array([[ 7.,  2.,  4.],
#       [nan, nan,  3.],
#       [nan, nan, nan]])

推荐阅读