What is the mapping between actions and numbers in OpenAI's gym?
There is no way to tell via the Gym API, and to any RL-based learning agent this is entirely unimportant, discrete actions are just arbitrary labels, and their effects are learned by trial and error in terms of reward and changes to state. 

If you need to know, you can read the code for each environment. Often it is described in a comment, or as constants. 

E.g. in FrozenLake-v0, you can find this code:

LEFT = 0
DOWN = 1
RIGHT = 2
UP = 3



  If I env.step(0), which direction is my agent moving?


Left, according to those constant names at least.