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

23 python numpy mean

我想以这种形式计算Python中数组的平均值:

Matrice = [1, 2, None]
Run Code Online (Sandbox Code Playgroud)

我只是想None通过numpy.mean计算忽略我的价值,但我无法弄清楚如何去做.

tom*_*m10 11

您正在寻找蒙面数组.这是一个例子.

import MA
a = MA.array([1, 2, None], mask = [0, 0, 1])
print "average =", MA.average(a)
Run Code Online (Sandbox Code Playgroud)

不幸的是,在numpy中没有完全支持蒙面数组,所以你必须环顾四周才能看到它们可以做什么和不能做什么.

  • 一个帮助了很多人的成员函数.这使得蒙面数组回到正常数组,填充了一个我认为无效的值(NaN,-9999,无论用户需要什么). (3认同)

Noa*_*led 6

你可以使用scipy:

import scipy.stats.stats as st
m=st.nanmean(vec)
Run Code Online (Sandbox Code Playgroud)

  • 这不起作用.`a = [1,2,None]`然后`st.nanmean(a)`导致TypeError. (2认同)
  • 是的,你是对的,它适用于 numpy.nan,而不适用于 None。在计算 numpy 向量的平均值时最有用。 (2认同)
  • 现在您也可以使用numpy.nanmean (2认同)

cob*_*bal 5

没有使用 numpy,但在标准 python 中,您可以None使用列表推导或过滤函数过滤掉

>>> [i for i in [1, 2, None] if i != None]
[1, 2]
>>> filter(lambda x: x != None, [1, 2, None])
[1, 2]
Run Code Online (Sandbox Code Playgroud)

然后平均结果忽略 None

  • `x != None` 通常写成 `x is not None`(PEP 8:“与像 None 这样的单例的比较应该总是用 'is' 或 'is not' 来完成,而不是等号运算符。”) (5认同)