2018-11-16
阅读量:
783
Python实现描述性统计-均值
常用的方法是使用均值(mean 或
average), 即用数据和除以数据个数:
# 如果没有从__future__导入division,那就是不对的
def mean(x):
return sum(x) / len(x)
mean(num_friends) # 7.333333
如果你有两个数据点,均值就意味着两点的中间点。随着数据集中点数的增加,均值点会
移动,但它始终取决于每个点的取值。
我们常常也会用到中位数(median),它是指数据中间点的值(如果数据点的个数是奇
数), 或者中间两个点的平均值(如果数据点的个数是偶数)。
例如,如果在排序向量 x 上有五个数据点,那么中位数就是 x[5 // 2] 或 x[2]。如果有六
个数据点,则中位数是 x[2](第三个点)与 x[3](第四个点)的平均数。
注意——和均值不同——中位数并不依赖于每一个数据的值。例如,即便数据集中最大的
点变得更大(或最小的点变得更小), 中间的数据点都不会变,意味着中位数也不会变。
median 函数很可能比你想象的更复杂一些,主要是因为数据集中数据个数奇偶性的不同:
def median(v):
"""finds the 'middle-most' value of v"""
n = len(v)
sorted_v = sorted(v)
midpoint = n // 2
if n % 2 == 1:
# 如果是奇数,返回中间值
return sorted_v[midpoint]
else:
# 如果是偶数,返回中间两个值的均值
lo = midpoint - 1
hi = midpoint
return (sorted_v[lo] + sorted_v[hi]) / 2
median(num_friends) # 6.0
0.0000
0
1
关注作者
收藏
评论(0)
发表评论
暂无数据
推荐帖子
0条评论
0条评论
1条评论