Numpy - 查找所有元素都是有限的行

Chr*_*uer 2 python numpy

我有数据存储在n行和p列的numpy数组中.

我想检查哪些行是完全有限的,并将此信息存储在布尔数组中,以将其用作某处的掩码.

我已经解决了p = 2的情况,但是想要解决所有情况

我的代码看起来像这样:

raw_test = np.array([[0, numpy.NaN], [0, 0], [numpy.NaN, numpy.NaN]])
test = np.isfinite(raw_test)
def multiply(x):
    return x[0] * x[1]

numpy.apply_along_axis(multiply, 1, test)
Run Code Online (Sandbox Code Playgroud)

Ash*_*ary 5

您可以使用numpy.isnan检查哪些项目NaN,然后查找所有True使用的行的索引numpy.allnumpy.where.

>>> np.isnan(raw_test)
array([[False,  True],
       [False, False],
       [ True,  True]], dtype=bool)
>>> np.all(np.isnan(raw_test), axis=1)
array([False, False,  True], dtype=bool)
>>> np.where(np.all(np.isnan(raw_test), axis=1))[0]
array([2])
Run Code Online (Sandbox Code Playgroud)