NumericPython
Numeric Python: Some handy array tools
A Quick Introduction to Python
Python is a high-level scripting language than can prove useful in a number of situations. On this page, we will mostly be looking at the array processing functions available through it's Numeric package. However, we'll start with a little taster of the core language by way of an introduction. Python has lots to offer to the scientific programmer, through the routines contained within it's Scientific and Numeric packages (offering a possible alternative to Matlab, IDL or R, for example), as well as it's visualisation tools. Python can also act as a flexible front-end to your Fortran or C routines. If you would like a more complete introduction to the language, there are a number of very good online tutorials (such as [1], for example), and also some good books by O'Reilly and New Riders, to name a couple. Python is freely available (and by that I mean gratis, at no cost) for Linux, Mac and Windows.
Getting Started with an Interactive Session
You can write scripts or start up the Python interpreter for an interactive session. We'll make a start interactively and move on to writing scripts later. At the Linux command line, you can invoke the interpreter by just typing:
python
and you should see something similar to:
Python 2.4.3 (#1, Jan 21 2009, 01:11:33) [GCC 4.1.2 20071124 (Red Hat 4.1.2-42)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
where we can type at the >>> prompt. To exit the interpreter, type Ctrl-D (i.e. the control key and D. Lower case is fine.)
Using the Numeric Package
from Numeric import *
Arrays
More Interesting
x = arange(-5,10) y = arange(-4,11) z1 = sqrt(add.outer(x**2,y**2)) Z = sin(z1)/z1
If you have the NumTut package available, then you can simply type:
from NumTut import * view(Z)
and you should get a window similar to:
Otherwise, we can use the matplotlib package:
import matplotlib.pyplot as plt from pylab import meshgrid X, Y = meshgrid(x,y) plt.figure() plt.contour(X,Y,Z) plt.show()
and you should get a window similar to: