Numpy遮罩缺失值的输入数据

4 投票
1 回答
509 浏览
提问于 2025-04-18 05:47

我正在使用loadtxt从一个csv文件中加载数据,里面的所有值都是浮点数,只有缺失的数据用字符“?”来表示。

我想创建一个被屏蔽的数组,这样我就可以在加载的数据上使用np.ma的一些函数,而缺失的数据在计算平均值等时会被忽略。我看过masked_array的文档,这个问题可能非常简单,但我就是搞不明白怎么把数组屏蔽掉“?”,让np.ma的数学函数在计算时不考虑这些缺失的数据。

1 个回答

3

你可以直接使用 np.genfromtxt() 这个函数来读取文件,并且可以把读取结果中的 nan 值隐藏起来。举个例子:

输入:

11, 12, 13, ?, ?, 16
21, 22, ?, 24, ?, 26

代码:

a = np.genfromtxt('test.txt', delimiter=',', missing_values='?', usemask=True)

a.sum(axis=1).data
#array([ 52.,  93.])

a.mean()
#18.125

撰写回答