A MAN is recovering in hospital after giving a crocodile an uppercut when it attacked him at a popular swimming hole in far north Queensland.

A Queensland Health spokeswoman told AAP the man is in a "stable condition" in Weipa hospital but could not reveal any other information because of privacy regulations.

Police say the man sustained puncture wounds to his palm and left wrist when he was attacked by the crocodile while swimming at Beening Creek, Napranum.

The attack happened about 6.30pm yesterday.

"The wounds are not life threatening," the police spokeswoman told AAP.

"It's now a matter for DERM (Department of Environment and Resource Management)."

One media outlet reported the man punched the crocodile in the snout to ward off the attack, but police said they did not have those details.