To neutralize data, recursively replace all numbers (not digits!) with zeros and all characters (not strings!) with spaces.
You must accept any structure of mixed numeric/character data that your language can handle. For example, you must accept actual strings (and not restrict your input to lists of single characters) if your language can handle such.
If your language contains a built-in which does all or most of this task, I would appreciate an additional alternative version without it.
The shortest submission in each language is a winner, and will receive an upvote from me.
Sample cases
""→""7→0123.456→0"X"→" "" "→" ""Yo!"→" "[]→[][-1.2E3]→[0]["Hey"]→[" "]["H","e","y"]→[" "," "," "]["R",2,"D",2]→[" ",0," ",0]["C","3","P",0]→[" "," "," ",0]["THX",[1138]]→[" ",[0]]["T","H","X",[1138]]→[" "," "," ",[0]][[["H"],"e",1,1,0],[[-3],"arth"]]→[[[" "]," ",0,0,0],[[0]," "]]
