在Ruby中规范化CSV列

时间:2012-01-18 22:08:01

标签: ruby csv multidimensional-array

我已经将CSV中的数据集作为数组数组导入Ruby(每行都是一个数组)。我想将每列从0到1标准化。因此,我必须找到每列的最大值和最小值。是否有捷径可寻?或者我是否必须解析每行中的每个列值?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用Array#transpose将内部数组作为列,然后使用Enumerable#min#max获取您的值。

copy = csv_data.transpose
copy.each do |a| #do whatever you need here
  a.min
  a.max
end

或类似的东西

copy = csv_data.transpose
arr_min = copy.map(&:min) # returns an array of the min values
arr_max = copy.map(&:max) # returns an array of the max values