1 / 20

Introduction to Python

Guy Griffiths. Introduction to Python. What is Python?. General purpose interpreted programming language Widely used by scientists and programmers of all stripes Supported by many 3 rd -party libraries (currently 21,054 on the main python package website) Free!. Why learn Python?.

benjy
Download Presentation

Introduction to Python

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Guy Griffiths Introduction to Python

  2. What is Python? • 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!

  3. Why learn Python? • Standardisation of programming language to teach to students • The Met Office is moving towards Python • Big user community • Publication-quality plots

  4. What is Python not? • 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)

  5. Who uses Python? • Met Office • Yahoo Maps/Groups • Google • NASA • ESRI • YouTube • Linux distros • reddit

  6. Quick tour of Python syntax • The best way to understand syntax is to look at some examples

  7. Syntax differences with Matlab

  8. Why is it well-suited to science? • Numpy • Numerical library for python • Written in C, wrapped by python • Fast • Scipy • Built on top of numpy and BLAS/LAPACK (i.e. fast) • Common maths, science, engineering routines • Matplotlib • Hugely flexible plotting library • Similar syntax to Matlab • Produces publication-quality output

  9. Numpy arrays • Numpy arrays behave slightly differently to Python lists • They cannot hold mixed data types • But they’re a lot faster than lists • For numerical work, always use Numpy arrays • Convert a list to an array with np.array(list) • Numpy functions all return arrays, so often nothing specific needs doing

  10. Plotting and Matplotlib • Matplotlib has very similar syntax to Matlab • Lots of examples: • http://matplotlib.org/gallery.html • http://matplotlib.org/basemap/users/examples.html • Using documentation and examples makes it easy to do almost any plot you could want

  11. Data formats • NetCDF • Use python-netcdf • CSV • np.recfromcsv() • GRIB • Use python-grib, python-grib2, or cf-python • PP • cf-python • Matlab .mat • scipy.io.loadmat(‘filename.mat’) • Others • If it’s a common format, someone will probably have written an adapter • If it’s text based, use np.genfromtxt()

  12. Python IDEs • Spyder is most Matlab-like • Contains inline help, variable inspector, interactive console & editor • IPython is powerful console-based interpreter • Not an IDE, but highly recommended for experimenting with prior to actual scripting • Eclipse + Pydev make a very powerful Python IDE • Quite heavyweight • Good for very large projects, probably overkill otherwise

  13. Using Python documentation • Online • HTML documentation is generated from code comments • In console: • help(np.array) • In IPython console: • np.array? • np.array()? • In Spyder: • Start typing, and function help appears in the help window

  14. Spyder, Data, and Plotting Examples • Let’s put all that into action with an example: • Reading from a NetCDF file and creating a plot of mean and standard deviation

  15. How can I get Python? • Firstly, get version 2.7.x. Python 3 will work but numerical libraries are less widely supported. • 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]

  16. How can I learn Python? • 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/

  17. Converting from Matlab to Python • http://www.scipy.org/NumPy_for_Matlab_Users • This is the most useful Matlab -> Python I’ve come across. • Contains key differences, things to note, and a big list of examples in both Matlab and Python

  18. Some recommended books • Python Essential Reference David M. Beazley (Addison Wesley) • Programming in Python 3: A Complete Introduction to the Python LanguageMark Summerfield (Addison Wesley) • Learning PythonMark Lutz (O’Reilly Media)

  19. What next? • Go away and try it! • Convert existing Matlab code (easy) • Convert existing Fortran code (harder) • Experiment with something new • Then come back in 3 weeks’ time for a workshop, bringing any questions/problems • No planned lecture • Will go through common problems people have • Join the met-python mailing list

  20. Thanks for listening Any questions?

More Related