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

np.where返回索引不符合预期:如何定位二维数组含非正数值的行?

问题分析与解决

你误解了np.where对二维数组的返回结果含义:

  • np.where(data_import == 0)返回的是两个数组组成的元组,第一个数组是所有符合条件元素的行索引,第二个是对应的列索引。你看到的(array([95]), array([2]))意思是:第95行、第2列的位置有一个0,完全和第2行没关系——是你主动打印第2行的操作,才造成了误解。

正确定位包含<=0元素的行的方法

要找出所有包含至少一个小于等于0元素的行,需要先对每行做整体判断,再提取行索引:

import numpy as np

# 生成每行是否存在<=0元素的布尔数组(axis=1表示按行判断)
has_invalid = np.any(data_import <= 0, axis=1)

# 获取符合条件的行索引
target_rows = np.where(has_invalid)[0]

# 打印这些行的索引
print(target_rows)
# 直接提取这些行的数据
print(data_import[target_rows])

在你的例子中,这段代码会返回[95],也就是只有第95行符合条件,和你预期的一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:05:14