"No one is in critical condition," said a spokeswoman for the regional police in the Swiss canton of Uri.
Police initially said 27 people had been hurt.
The accident happened shortly before midday as a train run by the Matterhorn-Gotthard rail company, made up of a locomotive and five carriages and carrying around 100 passengers, attempted a manoeuvre at Andermatt station.
The locomotive was supposed to move to a parallel track to move from the back of the train to the front, and allow the train to head back towards the Alpine resort of Disentis.
More From This Section
"For some reason, the locomotive drove into the convoy it had just detached from, instead of moving onto the parallel track," he said.
He said the locomotive had been travelling at a speed of only 15 to 20 kilometres per hour, and there appeared to be very little material damage.
Three rescue helicopters and around a dozen ambulances were sent to the scene, Swiss media reported.
The regional police and the Swiss Transportation Safety Investigation Board have opened an investigation into the circumstances surrounding the accident.