An $a$-core is a partition not containing any hook lengths divisible by $a$. An $(a_1,\dots,a_k)$-core is a partition that is simultaneously an $a_i$-core for all $i$. \par Many interesting enumerative results about core partitions appear in the literature. For example, it was shown by Anderson that, for $a$ and $b$ coprime, the number of $(a,b)$-cores equals the number of rational Dyck paths in an $a\times b$-rectangle. The size of the largest $(a,b)$-core and the average size of an $(a,b)$-core are known as well. \par This paper introduces a simple bijection $\varphi$ between numerical sets (that is, subsets of non-negative integers that contain 0 and have finite complement) and partitions. This bijection has some remarkable properties, which allows the authors to re-prove several known results about core partitions and obtain new ones. \par For example, it follows from the bijection that the hook set of a partition is always the complement of a numerical semigroup. The authors investigate how many partitions have a given hook set. Another property of $\varphi$ is that it restricts to a bijection between $a$-core partitions and numerical sets whose atom monoid contains $a$, which in turn are in bijection with $\Bbb{N}^{a-1}$. Formulas for the number of $a$-core partitions with given maximum hook length follow. When $\gcd(a_1,\dots,a_k)=1$, the bijection takes the set of simultaneous $(a_1,\dots,a_k)$-cores to the lattice points of a certain rational polytope.