如何在Python中使用numpy处理'None'值?
我想在Python中计算一个数组的平均值,格式是这样的:
Matrice = [1, 2, None]
我希望在用numpy.mean
计算时,能忽略掉我的None
值,但我不知道该怎么做。
7 个回答
6
你可以使用scipy来实现这个功能:
import scipy.stats.stats as st
m=st.nanmean(vec)
7
我没用过numpy,但在普通的Python中,你可以用列表推导式或者filter函数来过滤掉None
。
>>> [i for i in [1, 2, None] if i != None]
[1, 2]
>>> filter(lambda x: x != None, [1, 2, None])
[1, 2]
然后可以对结果求平均,这样就能忽略掉None
了。
12
你在寻找掩码数组。这里有一个例子。
import numpy.ma as ma
a = ma.array([1, 2, None], mask = [0, 0, 1])
print "average =", ma.average(a)
根据上面链接的numpy文档,“numpy.ma模块提供了一个几乎可以替代numpy的功能,支持带有掩码的数据数组。”