在numpy数组中找到none和nan的索引

Zan*_*nam 6 python numpy nan

我有一个数组,它看起来像:

array([[  1.,   2.,   None],
       [ nan,   4.,   5.]])
Run Code Online (Sandbox Code Playgroud)

我正在尝试以下操作:

np.equal(A, None) #works and finds index of None correctly
np.equal(A, np.nan) #doesn't work
np.isnan(A) #errors out
Run Code Online (Sandbox Code Playgroud)

错误是:

TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
Run Code Online (Sandbox Code Playgroud)

我应该如何解决这个问题,我试图在给定的数组中找到 None 和 nan 的索引。

我的最终输出应如下所示:

array([[False, False,  True],
       [True, False, False]], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

ken*_*ytm 5

我们可以首先将数组强制转换为具有 dtype float - 这会将 None 转换为 NaN。numpy.isnan然后可以在这个浮点数组上使用。

numpy.isnan(A.astype(float))
Run Code Online (Sandbox Code Playgroud)