Numpy遮罩缺失值的输入数据
我正在使用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