You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

查找二维数组中首个非全NaN行的行索引

解决方案

可以通过以下步骤快速找到首个包含实数的行号:

  1. 先判断每行是否存在非NaN元素:利用~np.isnan(m)标记所有实数的位置,再通过np.any(axis=1)检查每行是否至少有一个实数,得到一个布尔数组。
  2. 用np.argmax()获取布尔数组中第一个True的索引,这个索引就是目标行号。

完整代码示例

import numpy as np

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

# 生成每行是否包含实数的布尔数组
has_real = np.any(~np.isnan(m), axis=1)
# 获取首个包含实数的行号
first_row_idx = np.argmax(has_real)

print(first_row_idx)  # 输出:2

代码说明

  • ~np.isnan(m):将数组中的非NaN元素转为True,NaN转为False。
  • np.any(axis=1):按行判断,只要该行有一个True(即存在实数),就返回True,否则返回False。
  • np.argmax(has_real):布尔数组中True等价于1,False等价于0,argmax会返回第一个最大值(也就是第一个True)的索引,正好是我们需要的首个含实数的行号。

内容的提问来源于stack exchange,提问作者tibibou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 08:24:20