NumericPython

From SourceWiki
Jump to navigation Jump to search

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:

A grey-scale map of the sinc function

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:

A contour map of the sinc function

Input and Output