Ruby 按范围分组,数字数组?

标签 ruby arrays

我正在尝试根据 [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/

相关文章:

ruby-on-rails - 如何使用 fixtures/yml 文件中的数据加载 neo4j 测试数据库?

Ruby 按数组中的列写入 CSV 文件?

ruby - 如何在 Ruby 中写入 Windows 文件属性?

java - 添加数组末尾的对象

javascript - 在键值对的唯一组合上合并对象

MySQL 错误: `query':Ruby 文件上的键 3 (Mysql2::Error) 重复条目 ''

python - 在 XMLRPC 中处理 unicode 数据

php - 将数组插入数据库表

java - 如何在 Scala 中声明一个字节数组?

arrays - 在数组列表上 react 模态