Actually, you don't. A fortran compiler is optional, and used mostly for f2py and I think(?) for the LAPACK bindings. (The fortran bindings are more efficient than the C bindings for reasons I don't remember at the moment.)
Numpy's (and matplotlib's, actually) core is written in C.
Scipy is a different story, however. A lot of scipy's internals are written in fortran.
That having been said, fortran is a _very_ nice language for a significant portion of scientific programming tasks. IO in fortran is rather painful, though, i.m.o. Tools like f2py (which still doesn't really support fully modern fortran, unfortunately) make it very easy to combine fortran and python, for whatever it's worth.
Yeah maybe I was thinking of scipy. I've only built numpy and scipy from source once, and it was to install scikit-learn, which has both of them as a dependency. I had to install gfortran first.
My favourite example is randomForest, probably the most often used implementation of Random Forest, one of the most popular machine learning method. And it is an R package calling C calling Fortran 77.
Numpy's (and matplotlib's, actually) core is written in C.
Scipy is a different story, however. A lot of scipy's internals are written in fortran.
That having been said, fortran is a _very_ nice language for a significant portion of scientific programming tasks. IO in fortran is rather painful, though, i.m.o. Tools like f2py (which still doesn't really support fully modern fortran, unfortunately) make it very easy to combine fortran and python, for whatever it's worth.