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
グレート答えのようなもの。スピードが問題であれば、1回の「each」反復を使用してminとmaxの両方を計算することによって、実行時間を(あまり優雅に)半分にすることができます。 (しかし、おそらく、min/maxがC言語で実装されているとは限りません) – Phrogz