如何在Python中使用numpy处理'None'值?

31 投票
7 回答
48220 浏览
提问于 2025-04-15 12:05

我想在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的功能,支持带有掩码的数据数组。”

撰写回答