1
我已經將數據集從CSV導入到Ruby中作爲數組數組(每行都是數組)。我想將每列的標準化從0到1.因此,我必須找到每列的最大值和最小值。是否有捷徑可尋?或者我必須從每一行中解析出每一列的值?正常化Ruby中的CSV列
謝謝!
我已經將數據集從CSV導入到Ruby中作爲數組數組(每行都是數組)。我想將每列的標準化從0到1.因此,我必須找到每列的最大值和最小值。是否有捷徑可尋?或者我必須從每一行中解析出每一列的值?正常化Ruby中的CSV列
謝謝!
您可以使用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
偉大的答案。請注意,如果速度是一個問題,則可以使用單個「每個」迭代來計算最小值和最大值,從而將運行時間減半(不太優雅)。 (但是,也許不是,因爲最小/最大值是在C中實現的) – Phrogz 2012-01-19 00:31:45