我试图了解np.mean在以下示例中是如何工作的:
n = np.array([1,7,5,4])
m = pd.Series(data = [1,2,3,4],index = [1,2,3,4])
print(np.mean(n!=m))
## returns 0.5
print(np.mean(n[n!=m]))
## returns 4.0
有人可以解释第一个输出是如何计算出值0.5以及np.mean如何处理布尔系列n!= m?我理解第二部分正在做什么
答案 0 :(得分:1)
n!= m返回一个布尔数组.True和False值分别被视为1,0。在这种情况下,(0 + 1 + 1,0)/ 4产生0.5
>>> n != m
1 False
2 True
3 True
4 False
dtype:bool
N [N!= M] 数组([1,7,7,1])
这意味着在' n'上应用布尔选择。它返回[1,7,7,1] / 4收益率4
>>> condition = [n !=m]
>>> condition
[1 False
2 True
3 True
4 False
dtype: bool]
>>> n[condition]
array([1, 7, 7, 1])
答案 1 :(得分:-1)
print(np.mean(n[n!=m]))
应该返回6,而不是4。
因为n[n!=m] returns array([7, 5])
。