【问题标题】:histogram categorized data in c#c#中的直方图分类数据
【发布时间】:2018-04-29 07:11:32
【问题描述】:

我正在使用 numerics.mathdotnet 来计算排序数据的直方图。 我的数据集如下所示

第 1 行,a,b,c

行 2,x,y,z

...

然后计算我的直方图,假设在第 4 列有 [c,z,...]。 在生成直方图并绘制到图上(x 轴:存储桶,y 轴:该存储桶中的行数)之后,我想获取落入特定存储桶的行。

我的解决方案: 我将桶的开始和结束(使用桶宽度计算)传递给函数,遍历所有行并检查该行是否在桶范围内。

问题:对于某些桶宽度,它显示计数 > 0,但是当我获取它时,它在该桶中找不到任何行。

问题:有什么方法可以将数据与直方图结果一起获取? 例如:{ bucketRange_start: x, bucketRange_end: y, count: n, data: [...] }

【问题讨论】:

    标签: c# histogram math.net


    【解决方案1】:

    示例程序:

     // try Histogram
                //using MathNet.Numerics.Statistics; // required header
    
                // create random data
                Random RanGen = new Random();
                double[][] d = new double[4][];
                for (int i = 0; i < 4; i++) d[i] = new double[100];
                for (int i = 0; i < 4; i++) { for (int j = 0; j < 100; j++) d[i][j] = RanGen.NextDouble(); }
    
                // create histogram for 3rd array = d[2] ;
                Histogram h2 = new Histogram(d[2], 10);
    
                // write bucket info including max, min and count
                for (int b = 0; b < 10; b++) Console.WriteLine(h2[b].ToString());
    
                // Write row number and row data for all rows for which d3 value is in bucket with index = 7;
                for (int j = 0; j < 100; j++)
                {
                    if (h2.GetBucketIndexOf(d[2][j]) == 7) Console.WriteLine(j + "  " + d[0][j].ToString() + "  " + d[1][j].ToString() + "  " + d[2][j].ToString() + "  " + d[3][j].ToString() + "  ");
                }
    

    【讨论】:

      猜你喜欢
      • 2017-04-09
      • 2021-07-20
      • 1970-01-01
      • 2021-06-12
      • 2013-08-15
      • 2021-11-02
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      相关资源
      最近更新 更多