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

如何统计二维ndarray各列的NaN值数量并保存为ndarray

统计ndarray每列NaN值数量的正确方法

你原来的代码np.count_nonzero(np.isnan(arr))会把所有列的NaN值加起来得到总数,要按列单独统计,只需要给count_nonzero指定axis=0参数,让它沿着行的方向(也就是针对每一列)统计非零元素的数量——因为np.isnan(arr)会把NaN转为布尔值True(等价于1),非NaN转为False(等价于0),所以统计结果就是每列的NaN数量。

具体代码如下:

import numpy as np

# arr是你的(2000,7)形状ndarray
number_nan_per_col = np.count_nonzero(np.isnan(arr), axis=0)

执行后number_nan_per_col会是一个形状为(7,)的ndarray,每个元素对应原数组对应列的NaN值数量。

另外也可以用np.sum实现同样的效果,原理是对布尔数组按列求和(True算1,False算0):

number_nan_per_col = np.sum(np.isnan(arr), axis=0)

你可以用测试数据验证:

# 创建测试数组
arr = np.random.rand(2000, 7)
# 随机插入一些NaN值
arr[np.random.choice(2000, 150), np.random.choice(7, 150)] = np.nan
# 统计每列NaN数
nan_counts = np.count_nonzero(np.isnan(arr), axis=0)
print(nan_counts.shape)  # 输出 (7,)
print(nan_counts)        # 打印每列的NaN数量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 19:01:04