Four of the nine injured were said to be seriously wounded, but police say none of the victims are in life-threatening condition.
Previously police had said several attackers were involved and two were arrested, but they later said one suspect was behind the assault, a 36-year-old man from Kosovo living in Wuppertal.
The man had been diagnosed as a paranoid schizophrenic with a history of high anxiety and self-harm, police said, ruling out a terrorist motive.
Instead, they suggested he might have carried out the attack at the main railway station in Duesseldorf as an attempt to end his own life.
The axe attack began on an S-Bahn train line as the man reportedly randomly went after other passengers
. It continued when the attacker got to the train station and there injured other passersby. Police said he was in an “exceptional mental state” at the time.
News site Spiegel Online identified him as Fatmir H. and said he had told investigators that he had hoped to be shot dead by police following the random attack.
With screams echoing around the station concourse and the wounded bleeding on the ground, police chased the man along railway tracks until he leapt off a four-metre bridge to evade arrest.
Lying on the ground, the injured man told the first officers on the scene that “he had been ready to be shot dead by police,” said local crime squad chief Dietmar Kneip.
“We call that 'suicide by cop',” he told a press conference. “But luckily we were able to arrest him.”
He suffered serious multiple broken bones from the fall, police said, and was taken to hospital.
Authorities had detained others on Thursday night in the midst of the police operation, but they have since all been released. Police say it is now certain that the perpetrator acted alone.
Large numbers of police, including special units, were deployed at the station and traffic was halted. Bild newspaper reported that helicopters flew overhead. Train service was halted Thursday night, but by Friday morning had resumed.
Kneip said the suspect's brother had worried when he bought an axe about a week earlier.
And when he realized his brother had left their home in Wuppertal, 30 kilometres west of Düsseldorf, he phoned the police to report him missing.
But the call could not prevent the attack shortly before 9:00pm.
Among the victims were a 13-year-old girl who sustained bad injuries to her upper arm, two female Italian tourists and another woman, as well as five male commuters, all aged between 30 and 50.
“We were on the platform waiting for the train. The train arrived and suddenly someone with an axe came out and started attacking people,” an unnamed witness told Bild daily.
“There was blood everywhere.”
The man then tried to re-enter the carriage but the train driver locked the doors, protecting the terrified passengers inside who looked on as he beat the windows with his fists, police said.
Writing on Twitter, Angela Merkel's chancellery chief-of-staff Peter Altmaier said: “Our compassion and our thoughts go out to the injured.”
And city mayor Thomas Geisel also reached out to victims.
“It's a huge blow for Düsseldorf. Many people are in shock… My thoughts go out to the victims and their families,” he said.
German authorities have been on high alert, particularly since the Berlin truck attack in December which claimed 12 lives.
The security services say there are about 10,000 radical Islamists in the country, of whom 1,600 are suspected of having links to militant groups.
But there have also been several attacks where the assailants have turned out to be psychologically unstable.
Last July, a mentally disturbed 17-year-old migrant wielding an axe and a knife went on a rampage on a train in southern Germany, seriously injuring four people. The attack was later linked to Isis.
And last month, a 35-year-old German national, who was reportedly suffering from psychiatric problems, drove his car into a group of pedestrians
in the southwestern city of Heidelberg, killing one and injuring two.