Нет необходимости перебирать весь массив.
array = [10,32,5,6,7]
array[0, 2] = array[0, 2].map { |n| n/2.0 }
array
#=> [5.0, 16.0, 5, 6, 7]
или
2.times { |i| array[i] = array[i]/2.0 }
array
#=> [5.0, 16.0, 5, 6, 7]
Вышеизложенное отражает мое понимание того, что исходный массив должен быть изменен. Если массив не подлежит изменению, можно написать следующее.
array[0, 2].map { |n| n/2.0 }.concat(array[2..-1])
#=> [5.0, 16.0, 5, 6, 7]
array
#=> [10, 32, 5, 6, 7]