gpt4 book ai didi

c# - Linq 直方图

转载 作者:行者123 更新时间:2023-11-30 14:41:06 29 4
gpt4 key购买 nike

有没有办法用 linq 做一个分段直方图?我见过几个示例,您可以在其中计算特定对象的出现次数。是否可以创建一个基于 linq 的直方图来计算两个值之间的一系列对象的出现次数?

我不知道您将如何按一系列项目分组来创建直方图所需的桶?假设使用起始边界和宽度来创建范围。

您需要遍历数字数组并根据是否 <= Upper Bound 和 > Lower Bound 对每个数字进行分组。然后,您只需对每个组求和。我不知道如何按部分完成分组

最佳答案

是这样的吗?

        Random randF = new Random();
List<double> nums = new List<double>();
for (int i = 0; i < 100000; i++)
{
nums.Add(randF.NextDouble()*100);
}

double fromXF = 30;
double toXF = 80;
int groupCount = 10; // number of groups between values
var histF = from i in nums
let groupKeyF = ((i-fromXF)/(toXF-fromXF)*groupCount) // even distribution of "groupCount" groups between fromXF and toXF, simple math, really
where groupKeyF >= 0 && groupKeyF < groupCount // only groups we want
let groupKey = (int)groupKeyF // clamp it to only group number
group i by groupKey into gr // group it according to group number
orderby gr.Key
select new { Value = gr.Key, Count = gr.Count() };

foreach (var item in histF)
{
Console.WriteLine("Group number: " + item.Value + ", Count: " + item.Count);
}

关于c# - Linq 直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4601029/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com