"NumPy [initially released in 2005] is an extension to the Python programming
language, adding support for large, multi-dimensional arrays and matrices, along
with a large library of high-level mathematical functions to operate on these
arrays. ... Because Python is currently implemented as an interpreter,
mathematical algorithms written in it often run slower than compiled
equivalents. NumPy seeks to address this problem for numerical algorithms by
providing multidimensional arrays and functions and operators that operate
efficiently on arrays. Thus any algorithm that can be expressed primarily as
operations on arrays and matrices can run almost as quickly as the equivalent C
code." [from
http://en.wikipedia.org/wiki/NumPy]
Python and Matlab both use dynamic typing and are higher-level than
programming languages such as C/C++ and Java, in the sense that the manipulation
of objects such as matrices and arrays requires far less code in Python and
Matlab. Python's support for numerical/scientific computing is roughly
comparable to that of Matlab, and there is in fact really no third contender in
this category. (Mathematica is an excellent tool for symbolic math, but is
severely deficient as a programming language).
4 Oct., 2015: I've recently started digging into the IPython Interactive Computing and Visualization Cookbook by Cyrille Rossant. (The snippets of sample content at http://ipython-books.github.io/cookbook are hard to understand without the context). Although I'm in the main opposed to computer programming cookbooks, this is far better than most books in that genre. The author begins each chapter with a brief introduction that combines background and motivation. The examples are well designed and explained.
Last update: 16 May, 2016