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)是什么意思?
答案 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.0
; float(False)
是0.0
。
因此,(x > 0).mean()
是x
的正数元素所占的比例。对于[1,3]
,[2,4]
和[3,5]
,它们分别是100%或1.0
。对于[-1, 0, 1]
,它将是1/3
。