使用numpy.mean和条件的这种语法是什么意思

时间:2019-09-17 06:11:02

标签: python numpy

result = map(lambda x: (x>0).mean(), np.array([[1,3], [2,4], [3,5]]))
print result
## output: [1.0, 1.0, 1.0]

此语法中(x> 0)条件的平均值是什么,为什么我会得到[1.0,1.0,1.0]之类的结果?

additional)如果我使用(x> 0).mean((1,2)),这(1,2)是什么意思?

2 个答案:

答案 0 :(得分:0)

  

np.array> 0返回相同形状但被布尔值填充的np.array   满足给定条件的值,如果取均值,则为true   视为1.0,错误视为0,因此您的平均值为1.0 1.0。

答案 1 :(得分:0)

np.array([1, 3]) > 0给出一个布尔数组,每个元素表示原始数组的元素是否为正。

np.mean将给出数组的算术平均值。但是,它只能处理浮点数,因此将布尔值强制转换为浮点数。 float(True)1.0float(False)0.0

因此,(x > 0).mean()x的正数元素所占的比例。对于[1,3][2,4][3,5],它们分别是100%或1.0。对于[-1, 0, 1],它将是1/3