python求极差函数 python 求差函数

求python的list的差值要完全避免forpython求极差函数,连列表表达式中使用for都不可以的话,主要就靠functools的reducepython求极差函数了 。
因为在排除for之后 , 简单直接的办法中 , 只有reduce是可以处理列表中连续两个元素的 。
当然,也可以不用reduce,使用map也是可以的python求极差函数:
至于做成方法,定义一个基于list的类后也差不多:
用python求解函数的极值 , 求实现代码python有个符号计算的库叫sympy,可以直接用这个库求导数然后解导数=0的方程,参考代码如下:
from sympy import *
x = symbols('x')
y = (x-3)**2+2*sin(x)-3*x+1
eq = diff(y, x)
solve(eq, x)
为什么极差用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():
if vmax_appear:

推荐阅读