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

如何用Numpy过滤数组中第二列含NaN的行(保留形状)

Numpy过滤含NaN的行(保留二维数组形状)

直接用布尔索引针对第二列的非NaN值筛选整行,就能保留二维数组结构,完全满足后续相关性分析的需求。

步骤示例

  1. 导入Numpy并定义原数组:
import numpy as np

# 示例原数组
arr = np.array([[10., 10.],
                [20., 13.],
                [ 5., np.nan],
                [ 6., np.nan]])
  1. 生成第二列的非NaN掩码:
# 取第二列(索引为1),筛选出非NaN的行位置
mask = ~np.isnan(arr[:, 1])
  1. 用掩码过滤数组:
filtered_arr = arr[mask]

验证结果

运行后会得到目标二维数组:

print(filtered_arr)
# 输出:
# [[10. 10.]
#  [20. 13.]]

print(filtered_arr.shape)  # 输出 (2, 2),保持二维形状

关于形状丢失的原因

如果直接对整个数组用~np.isnan(arr),会得到和原数组同形状的二维掩码,用它索引会把数组展平成一维。而我们只需要针对第二列生成一维掩码,用它选择整行,就能保留原有的二维结构。

适配你的115行数组

把上述代码里的arr换成你自己的(115,2)数组即可,逻辑完全通用,过滤后依然是二维数组,可直接用于相关性等统计分析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 20:15:34