Transcript ppt

Guy Griffiths

General purpose interpreted programming
language

Widely used by scientists and programmers of
all stripes

Supported by many 3rd-party libraries (currently
21,054 on the main python package website)

Free!

Numpy
 Numerical library for python
 Written in C, wrapped by python
 Fast

Scipy
 Built on top of numpy (i.e. Also fast!)
 Common maths, science, engineering routines

Matplotlib
 Hugely flexible plotting library
 Similar syntax to Matlab
 Produces publication-quality output

An integrated graphical environment like Matlab
(although there are tools which put it in one –
e.g. Spyder)

Specifically designed for
scientists/mathematicians (but the 3rd-party
libraries for plotting/numerical work are some of
the best around)

High performance (but it is very easy to wrap
C/Fortran libraries in Python code)







Yahoo Maps/Groups
Google
NASA
ESRI
Linux distros
Met Office
Me

How about several cool things that Python
can do?

It can do everything







Fast mathematical operations
Easy file manipulation
Format conversion
Plotting
Scripting
Command line
OK, not everything
 Write papers for you
Run program
Close Matlab
Write to file
Plot/Analyze
Open Matlab
Read in file
Run program which
does plotting and
analysis (and writes
analysis to file)
Have a break

Interactive prompt is great for experimenting
 iPython is a fantastic interactive environment
 I mostly write code in iPython interactively, then
copy it out into a script when I’m done

print is easy and intuitive to use
 Yes, you should use a proper debugger, but let’s
face it – print statements are quicker and easier.
 Well, print statements in python are even quicker
and easier than that.

Readable code
 You have to indent all of your loops, conditionals,
etc.
 This means that your code will always be indented
in a helpful way
 Inline documentation
 3rd-party libraries
 Numpy, Scipy, Matplotlib are standard libraries
for scientific computing
 cf-python is written with meteorologists in mind
 There are 3rd-party libraries for many, many things
 If you want to do something that isn’t particularly
uncommon, there will be a library to do it for you

No. But python can wrap your existing
C/Fortran/R code...
 You can get the benefits of a high-level language
whilst keeping your fast C/Fortran routines
 This is what Numpy does (and why Numpy is fast)

...and Matlab code translates pretty easily to
python.

A good language to teach
 Questions you won’t hear if you teach python:
▪ “What does ‘Segmentation fault’ mean?”
▪ “Why do I have to click ‘build’ before I run this every
time?”
▪ “Do you know where I can download a license for this so
I can use it at home?”
 Questions you may still hear:
▪ “What’s a variable?”
▪ “Why do we have to do this?”

Let’s have a look at a few python libraries in
action

Firstly, get version 2.7.x. Python 3 is probably more
trouble than it’s worth right now.

Windows – Python(x,y) [www.pythonxy.com]
This is a scientific/engineering oriented distribution of
python. It includes everything you need to get started

Linux – it’s already there! Unless you’re running a very
unusual distro (in which case you probably already
know what you’re doing).

Mac – it’s already there on OS X, but it’s old. Get a
more up-to-date one [www.python.org]

The official python tutorial:
http://docs.python.org/tutorial/

Software Carpentry:
http://software-carpentry.org/

Dive into Python:
http://www.diveintopython.net/

Learn Python the Hard Way:
http://learnpythonthehardway.org/

A Byte of Python:
http://www.ibiblio.org/g2swap/byteofpython/read/

Python Essential Reference
David M. Beazley (Addison Wesley)

Programming in Python 3: A Complete
Introduction to the Python Language
Mark Summerfield (Addison Wesley)

Learning Python
Mark Lutz (O’Reilly Media)