python极差函数 python 求极值( 四 )


它与函数的最大的区别就是 , reduce()里的映射函数(function)接收两个参数,而map接收一个参数 。
(4)enumerate函数
用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中 。
它的两个参数,一个是序列、迭代器或其他支持迭代对象;另一个是下标起始位置,默认情况从0开始 , 也可以自定义计数器的起始编号 。
(5)Zip函数
用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表
当我们使用zip()函数时 , 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同 。
为什么极差用python跑不出结果python作为数据分析的利器python极差函数,求极差、平均数、中位数、众数与方差是很常用的,然而 , 在python进行统计往往要使用外部的python库numpy , 这个库不难装 , 然而,如果单纯只是求极差、平均数、中位数、众数与方差,还是自己写比较好,因为,给一个.py程序别人的机器,别人的机器上没有python库numpy , 又要别人折腾一番,这很不好 。不过看情况咯,如果你要处理上亿级的数据,还是配置一下外部的python库numpy吧 。
先给大家回归一下极差、平均数、中位数、众数与方差是什么鬼:
1、极差:最大值与最小值之差 。它是标志值变动的最大范围 。英文:range
公式:R=Xmax-Xmin(其中,Xmax为最大值,Xmin为最小值)
2、平均数:一组数据中所有数据之和再除以数据的个数 。反映数据集中趋势的一项指标 。英文:average
公式:
3、中位数:对于有限的数集,可以通过把所有观察值高低排序后找出正中间的一个作为中位数 。如果观察值有偶数个,通常取最中间的两个数值的平均数作为中位数 。英文:median
公式:从小到大排序为则N为奇数时 , N为偶数时 , 
4、众数:众数是样本观测值在频数分布表中频数最多的那一组的组中值,主要应用于大面积普查研究之中 。英文:mode
例如:1,2,3,3 , 4的众数是3 。
但是,如果有两个或两个以上个数出现次数都是最多的,那么这几个数都是这组数据的众数 。
例如:1,2,2,3 , 3,4的众数是2和3 。
还有 , 如果所有数据出现的次数都一样,那么这组数据没有众数 。
例如:1,2,3,4,5没有众数 。
5、方差:方差是实际值与期望值之差平方的平均值,方差是在概率论和统计方差衡量随机变量或一组数据是离散程度的度量 。英文:variance
公式:或者(就是在《概率论与数理统计》中那条 , 方差就是平方的期望-期望的平方)
因此,根据上述的理论,得到如下的代码:
[python] view plain copy
#-*-coding:utf-8-*-
import time;
import random;
class Math:
#求极差
@staticmethod
def range(l):
return max(l)-min(l);
#求平均数
@staticmethod
def avg(l):
return float(sum(l))/len(l);
#求中位数
@staticmethod
def median(l):
l=sorted(l);#先排序
if len(l)%2==1:
return l[len(l)/2];
else:
return (l[len(l)/2-1]+l[len(l)/2])/2.0;
#求众数
@staticmethod
def mode(l):
#统计list中各个数值出现的次数
count_dict={};
for i in l:
if count_dict.has_key(i):
count_dict[i]+=1;
else:
count_dict[i]=1;
#求出现次数的最大值
max_appear=0
for v in count_dict.values():

推荐阅读