我正在尝试根据 [0,1]
范围内的数字数组创建直方图。
有没有办法使用 group_by
将数组按数字间隔(或其他一些有趣的 Ruby 单行代码)分成 N 个组/箱?
这是我当前的无聊解决方案:
# values == array containing floating point numbers in the range [0,1]
n = 10
# EDITED from Array.new(n, 0) to Array.new(n, []), thanks emaillenin!
histogram = Array.new(n, [])
values.each do |val|
histogram[(val * n).ceil - 1].push(val)
end
最佳答案
不确定您要做什么,但也许这有帮助?
values = [0.0, 0.1, 0.2, 0.3]
values.group_by { |v| (v * 10).ceil - 1 }
返回一个散列:
{-1=>[0.0], 0=>[0.1], 1=>[0.2], 2=>[0.3]}
关于Ruby 按范围分组,数字数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24961371/