あなたならどう書く?

お題

801x801x4byte(float)のデータを読み込み
Y方向だけ反転させて、CSV形式で出力したい。

とりあえず15分で作成してみた。

require 'csv'
fi=open(ARGV[0],"r")
dataarray=fi.read.unpack("f*")
fo=CSV.open(ARGV[1],"w")
(0..800).map do |y|
  (0..800).map do |x|
    dataarray[y*801+x]
  end
end.reverse.each do |line|
  fo << line
end

改良の余地はあるかな。