【原创】开源Math.NET基础数学类库使用(10)C#进行基本数据统计

               本博客所有文章分类的总目录:【总目录】本博客博文总目录-实时更新 

开源Math.NET基础数学类库使用总目录:【目录】开源Math.NET基础数学类库使用总目录

前言

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

  如果本文资源或者显示有问题,请参考 本文原文地址http://www.cnblogs.com/asxinyu/p/4301252.html

1.Math.NET的统计函数类

  Math.NET在MathNet.Numerics.Statistics命名空间中的基本数据统计类及作用介绍如下,静态类中的方法基本上都可以直接作为扩展方法使用:

1.Statistics类,基础的数据集统计,如最小值,最大值,平均值,总体方差,标准差等等。为静态类,注意Statistics是一个总体的统计类,其很多函数的调用都是根据数据集的类型分开调用StreamingStatistics和ArrayStatistics;

2.StreamingStatistics,静态类,是流数据集的统计,适合于一些大数据集,不能一次性读入内存的情况;

3.ArrayStatistics,静态类,是普通的未排序数组数据集的统计,一次性都加载在内存,因此计算比较方便;

4.SortedArrayStatistics,静态类,是排序数组数据集的统计;

5.DescriptiveStatistics,非静态类,与Statistics类的功能类似,但不一样的是Statistics是静态方法,一一计算,而该类是初始化的时候,可以一次性计算所有的指标,直接通过属性进行获取。

6.RunningStatistics,非静态类,和Statistics类功能差不多,但允许动态更新数据,进行再次计算;

2.统计函数类的实现

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

  1 /// <summary>
  2 /// 对未排序的数组进行统计操作  警告: Methods with the Inplace-suffix may modify the data array by reordering its entries.
  3 /// </summary>
  4 public static class ArrayStatistics
  5 {
  6     /// <summary>返回未排序数组的最小值,如果数据为空或者元素为NaN,则返回NaN.</summary>
  7     /// <param name="data">简单的未排序数组.</param>
  8     public static double Minimum(double[] data) 
  9 
 10     /// <summary>返回未排序数组的最小值,如果数据为空或者元素为NaN,则返回NaN.</summary>
 11     /// <param name="data">简单的未排序数组.</param>
 12     public static float Minimum(float[] data) ;
 13 
 14     /// <summary>返回未排序数组的最大值,如果数据为空或者元素为NaN,则返回NaN.</summary>
 15     /// <param name="data">简单的未排序数组.</param>
 16     public static double Maximum(double[] data) ;
 17 
 18     /// <summary>返回未排序数组的最大值,如果数据为空或者元素为NaN,则返回NaN.</summary>
 19     /// <param name="data">简单的未排序数组.</param>
 20     public static float Maximum(float[] data);
 21 
 22     /// <summary>计算未排序数组的算术平均值,如果数据是空的或者元素为NaN</summary>
 23     /// <param name="data">简单的未排序数组.</param>
 24     public static double Mean(double[] data) ;
 25 
 26     /// <summary>
 27     /// 计算未排序数组的无偏总体方差:对大小为N的数据集,使用N-1进行标准化.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值