Source: http://web.mit.edu/16.070/www/year2001/ndarrays.pdf