天天看点

【原创】开源Math.NET基础数学类库使用(10)C#进行基本数据统计前言1.Math.NET的统计函数类2.统计函数类的实现3.统计函数使用的例子14.统计函数使用的例子25.资源

  数据集的基本统计计算是应用数学,以及统计应用中最常用的功能。如计算数据集的均值,方差,标准差,最大值,最小值,熵等等。math.net中的mathnet.numerics.statistics命名空间就包括了大量的这些统计计算的函数。今天就为大家介绍这方面的内容。这样就可以使用c#进行数据集合的相关统计计算,以前在matlab中一个函数可以解决的问题,在c#里面也可以一个函数解决。所以math.net很大程度上替代了matlab的基础数据计算功能,当然是不能和matlab媲美的。

  math.net在mathnet.numerics.statistics命名空间中的基本数据统计类及作用介绍如下,静态类中的方法基本上都可以直接作为扩展方法使用:

1.statistics类,基础的数据集统计,如最小值,最大值,平均值,总体方差,标准差等等。为静态类,注意statistics是一个总体的统计类,其很多函数的调用都是根据数据集的类型分开调用streamingstatistics和arraystatistics; 2.streamingstatistics,静态类,是流数据集的统计,适合于一些大数据集,不能一次性读入内存的情况; 3.arraystatistics,静态类,是普通的未排序数组数据集的统计,一次性都加载在内存,因此计算比较方便; 4.sortedarraystatistics,静态类,是排序数组数据集的统计; 5.descriptivestatistics,非静态类,与statistics类的功能类似,但不一样的是statistics是静态方法,一一计算,而该类是初始化的时候,可以一次性计算所有的指标,直接通过属性进行获取。 6.runningstatistics,非静态类,和statistics类功能差不多,但允许动态更新数据,进行再次计算;

  上述有多个统计类,但核心的代码不多。上述多个实现,也只是为了满足多种不同的需求。我们一起看一个基本实现:arraystatistics类,类的核心实现,代码过多,只列举了代码原型,和注释:

  当然不是所有人都会用到这些函数,一般人可能只会用到一些常用的,如均值,方差等等。详细的使用,可以看下面的例子。

  上面已经提到,对于静态类中的方法,可以根据需要使用扩展方法,或者直接调用该函数进行计算相应的统计指标。这种事情是非常简单的,看一个综合的例子:

结果如下:

下面将介绍使用descriptivestatistics类直接进行所有指标计算的例子。 

  使用descriptivestatistics的方法也很简单,直接使用数据数组进行初始化,然后根据属性获取对应的指标结果就可以了。如下代码: