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
Trang 1Guy Griffiths
Trang 2 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!
Trang 3 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
Trang 5 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)
Trang 6 Yahoo Maps/Groups
NASA
ESRI
Linux distros
Met Office
Me
Trang 7 How about several cool things that Python can do?
Trang 11 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.
Trang 12 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
Trang 13 3rd-party libraries
Numpy, Scipy, Matplotlib are standard libraries for scientific computing
cf-python is written with meteorologists in mind
There are 3 rd -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
Trang 14 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
Trang 15 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?”
Trang 16 Let’s have a look at a few python libraries in action
Trang 17 Firstly, get version 2.7.x Python 3 is probably more trouble than it’s worth right now.
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]
Trang 18 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/
Trang 19 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)