Here on earth, we have four directions(East, West, North, South). We have earth maps which shows our exact location from any other location in 2D plane. But in space, planets and stars are in three dimensions, so how can we say that a certain planet is at "this" location in space. If we are using 3D geometry consisting of X,Y,Z axes, then where is the assumed center of that model? Here on earth we can say that Canada is at "NORTH" of USA, how do we say that Earth is at "****" of Mars?
There are many different coordinate systems (X, Y, Z axes as you refer to them). The center of the Earth is often used as the origin "center" of the coordinate system, at least for calculations concerning the space in the vicinity of Earth. There are many such Earth-centered coordinate systems as well. In the Space Shuttle Program we used the "Mean of 50" and the "J2000" inertial systems often. They are well described in this article.
Although I have no personal experience with it, I imagine for planetary calculations, there are Sun-centered coordinate systems, and ones for each planet that people care to calculate such things for.
To answer the last part of your question, such terminology as "Earth being North of Mars" is used only informally and would require some up-front definitions to be meaningful.
The answer by @OrganicMarble really sums up the situation well! I'm going to add this supplemental information here only because it won't fit into a comment.
The documentation of Skyfield discusses Barycentric position - i.e. position of things with respect to the center of mass of the solar system, which is approximately at the sun, although because Jupiter and to a lesser extent Saturn are so heavy, the sun moves around a bit as well.
I like this software very much, because it gives you a very simple Python interface to access some very complicated things. In a few lines we can get the (X, Y, Z) position of Earth and Mars, at the exact moment @OrganicMarble posted the answer, and then some other useful things as well.
But first (before the actual X, Y, Z positions) here is a cartoon of the Barycentric coordinates. The origin is at the center of mass of the solar system, and the Z axis points where the axis of the earth pointed at one moment (it slowly drifts, so they froze it).
from skyfield.api import load, JulianDate data = load('de421.bsp') earth = data['earth'] mars = data['mars'] jd = JulianDate(utc=(2016, 4, 7, 12, 19, 52)) # Timestamp of Organic Marble's answer ep = earth.at(jd).position.km mp = mars.at(jd).position.km print "Earth: ", ep # (X, Y, Z) of Earth at the moment Organic Marble posted the answer! print "Mars: ", mp # ditto for Mars Earth: array([ -1.41969644e+08, -4.19228367e+07, -1.81995394e+07]) Mars: array([ -1.83099445e+08, -1.36301780e+08, -5.75942828e+07]) print earth.at(jd).observe(mars).radec() # corrected for 6 minute delay of the light from Mars (<Angle 16h 25m 47.63s>, <Angle -20deg 56' 19.3">, <Distance 0.736829 au>) print earth.at(jd).observe(mars).apparent().radec() # corrected abberation and gravitational delfection of light (<Angle 16h 25m 48.53s>, <Angle -20deg 56' 21.5">, <Distance 0.736829 au>) Houston = earth.topos(29.76, -95.38, elevation_m = 13) print Houston.at(jd).observe(mars).apparent().radec() # now R.A. and Dec from Houston, not center of Earth (<Angle 16h 25m 48.08s>, <Angle -20deg 56' 29.9">, <Distance 0.73681 au>) print Houston.at(jd).observe(mars).apparent().altaz() # almost 27 degrees above the horizon (<Angle 26deg 49' 51.8">, <Angle 221deg 17' 44.6">, <Distance 0.73681 au>) print Houston.at(jd).observe(mars).apparent().altaz('standard') # corrected for refraction - standard atmosphere (<Angle 26deg 51' 48.9">, <Angle 221deg 17' 44.6">, <Distance 0.73681 au>)