如何识别 numpy 矩阵中仅包含 NaN 的行的索引?
How to identify the index of a row containing only NaNs in a numpy matrix?
我有一个二维 numpy 矩阵,看起来像这样:
array = np.array([[nan, nan, 5.1, nan, nan],
[nan, 3.2, 1.7, 9.9, nan],
[nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan]])
我想确定包含 仅 nans 的矩阵中第一行的索引。 (在这种情况下,该索引为 2。)但我不知道该怎么做。
我知道我可以使用 np.argwhere(np.isnan(array))
找到 all nans 的索引,但这不是我要找的。
知道如何实现吗?谢谢!
你很接近!您可以沿轴使用 np.all
(或 np.array
方法 all
)来查找全部为 nan
的条目,例如
import numpy as np
nan = np.nan
a = np.array([[nan, nan, 5.1, nan, nan],
[nan, 3.2, 1.7, 9.9, nan],
[nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan]])
np.argwhere(np.isnan(a).all(axis=1))
会给你
array([[2],
[3],
[4]])
您还可以在此处使用 argmax
的技巧来找到第一行 True
np.isnan(a).all(axis=1).argmax()
会给
2
我有一个二维 numpy 矩阵,看起来像这样:
array = np.array([[nan, nan, 5.1, nan, nan],
[nan, 3.2, 1.7, 9.9, nan],
[nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan]])
我想确定包含 仅 nans 的矩阵中第一行的索引。 (在这种情况下,该索引为 2。)但我不知道该怎么做。
我知道我可以使用 np.argwhere(np.isnan(array))
找到 all nans 的索引,但这不是我要找的。
知道如何实现吗?谢谢!
你很接近!您可以沿轴使用 np.all
(或 np.array
方法 all
)来查找全部为 nan
的条目,例如
import numpy as np
nan = np.nan
a = np.array([[nan, nan, 5.1, nan, nan],
[nan, 3.2, 1.7, 9.9, nan],
[nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan],
[nan, nan, nan, nan, nan]])
np.argwhere(np.isnan(a).all(axis=1))
会给你
array([[2],
[3],
[4]])
您还可以在此处使用 argmax
的技巧来找到第一行 True
np.isnan(a).all(axis=1).argmax()
会给
2