以下均以数据集nums为处理对象,其中含有若干相同类型的数据
- 众数
特征:数据集合中出现次数最多(不唯一)
(备注:因为普通的scipy.stats.mode仅能返回最先出现的其中一个众数,所以以下我进行了扩充改写更符合众数的定义)
#!/usr/bin/python # coding:utf-8 from scipy import stats from collections import Counter nums=[3,0,1,2,0,1,2,0,1,2] datas=dict(Counter(nums)) # 获得按频率分配后的统计字典 keys=[] # 统计满足是众数的keys集合 sum=0 # 统计符合value与众数的value相同的个数 count = stats.mode(nums)[1] for key,value in datas.items(): if value == count: keys.append(key) sum+=1 if sum==len(datas): # 若整个数据集各个元素出现的频率相同,则不存在众数;反之返回符合的众数集合(可能不止一个) print "该数据集中无众数" else: print "该数据集的众数为:",keys
- 中位数
特征:数据集包含的数值个数,若为奇数,则为排在最中间的那个数;若为偶数,则为排在中间两数的算术平均值
import numpy as np nums=[1,2,3,4,5,6] print "中位数是",np.median(nums)
- 平均数
- 算数平均数
特征:数据集数值之和除以数值个数
import numpy as np nums=[1,2,3,4,5.5] print "算数平均值是",np.mean(nums)
- 加权平均数
特征:数据集中各数值与其各自权重乘积之和
import numpy as np nums=[2,3,4] weights=[1,2,3] print "加权平均值为",np.average(nums,weights=weights)
- 几何平均数:
特征:用于各种定比数值间的平均值计算
from scipy import stats as sta nums=[2,3,1] print "几何平均值为",sta.gmean(nums)
- 分位数
特征:将一个随机变量的概率分布范围分为几个具有相同概率的连续区间。分割点的数量比划分出的区间少1。(举例四分位点)
```
import numpy as np
nums=[2,3,4,5,6,7,8,1] print "四分位点为",np.percentile(nums,25),np.percentile(nums,50),np.percentile(nums,75) ```
- 方差
特征:数据集中各数值与均值之间差值平方的算数平均值
- 标准差
特征:方差的开二次方根
- 极差
特征:数据集内两最值之间的差值
- 平均差
特征:数据集中各数值与均值之间差值的算数平均值
import numpy as np nums=[2,3,4,5,6,7,8,9] print "极差为",np.ptp(nums) print "方差为",np.var(nums) print "标准差为",np.std(nums)
- 四分位差
- 异众比率
- 离散系数
- 偏态系数
- 峰态系数