python - 查找二维数组中未满 NaN 的第一行的行索引

标签 python arrays numpy

我有 2D 数组,其中有很多行完全填充了 NaN 值。 我想找到第一个实数出现的位置,即它出现的行号。 我的简化数组如下所示:

m = np.array([[np.nan, np.nan, np.nan], [np.nan, np.nan, np.nan], [np.nan, 17, np.nan],[np.nan, 18, 25]])

预期结果是2,即17出现的行号! 谢谢

最佳答案

您可以使用 sumisnan 获取至少一个元素不是 nan 的第一行:

np.argmax((~np.isnan(m)).sum(axis=1) > 0)

编辑

根据 I mahdi 的回答,我意识到您也可以使用 any:

np.argmax((~np.isnan(m)).any(axis=1))

关于python - 查找二维数组中未满 NaN 的第一行的行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73337826/

相关文章:

python - 创建一个列来计算每个新行之间的差异

numpy - 在 pyspark 中使用 numpy Busday_count 函数

python - 根据顺序将数组拆分为同等权重的 block

python - Django:如何从引用类中的类方法获取外键的类?

python - Geopandas:如何读取 csv 并转换为带有多边形的 geopandas 数据框?

javascript - 追加错误动态表

java - 将数组拆分为 X 长度的片段

android - 如何在字符串数组中设置文本样式?

python - 如何用python获取表标签1和表标签2之后的所有<li>?

python - MySQL - 如果表名称包含表列表的记录,则选择表名称