<<

Python for Matlab Users

Thomas Hauser Director of Research Computing [email protected]

Monte Lunacek HPC Application Specialist [email protected]

CU Research Computing: University of Colorado Boulder Who are we?

CU Research Computing: University of Colorado Boulder 2/30 What is Python?

CU Research Computing: University of Colorado Boulder 3/30 What is Python? · Flexible, powerful ­ Object oriented ­ Runs everywhere ­ Testing framework · Easy, clean syntax · Very readable code · Balanced high level programming with low­level optimization ­ Pyrex, Cython ­ F2py · Large community of support ­ Modular system, large number of libraries · Free as in free beer · Free as in free speech

CU Research Computing: University of Colorado Boulder 4/30 Minimum packages for · python: the base language · : arrays, fast operations on arrays · : higher level computational routines · : plotting · : notebooks, flexible shell, and parallel · pandas: data analysis

CU Research Computing: University of Colorado Boulder 5/30 What can you do with Python? · OS support: manage files and directories · Glue existing applications · LAPACK and BLAS: access powerful and libraries · Parallel · Data Analysis · Visualization · GUI programming · Scrape websites · Build websites · Anything!

CU Research Computing: University of Colorado Boulder 6/30 Outline Part One · Python Overview (30 minutes) ­ IPython and Notebook ­ Functions, lists, and Dictionaries · Lab (10 minutes) · Break (10 minutes)

Part Two · Numpy (20 minutes) · Plotting with Matplotlib (10 minutes) · Lab (10 minutes) · Data Analysis (20 minutes)

CU Research Computing: University of Colorado Boulder 7/30 Python Overview · Test driving three ways to interact with Python · Functions, lists, dictionaries Hello World

#!/Users/mlunacek/anaconda/bin/python PYTHON

def say_hello(): print 'hello world'

say_hello()

What do you notice about this code?

CU Research Computing: University of Colorado Boulder 9/30 Three ways to run

CU Research Computing: University of Colorado Boulder 10/30 Terminal

$ hello_world.py BASH hello_world.py $ python hello_world.py hello world $ ./hello_world.py hello world bash-mac$

CU Research Computing: University of Colorado Boulder 11/30 IPython shell · OS support · Formatted print · Tab Completion · %run ­ Persistence · History · Introspection (?,??) · %paste and %cpaste

CU Research Computing: University of Colorado Boulder 12/30 Quick Introduction to Python · Functions · Lists · Dictionaries How · IPython terminal · Notebook

CU Research Computing: University of Colorado Boulder 13/30 To import a notebook, drag the file onto the listing below or click here.

/Users/mlunacek/Documents/tutorials/python/python_hpc/Python4Matlab data_analysis dictionary_and_lab functions_and_lists matplotlib numpyTutorial python4matlab

CU Research Computing: University of Colorado Boulder 14/30 Lab and Break

Dictionaries

CU Research Computing: University of Colorado Boulder 15/30 Endthought

http://www.enthought.com/

CU Research Computing: University of Colorado Boulder 16/30 Anaconda

https://store.continuum.io/cshop/anaconda

CU Research Computing: University of Colorado Boulder 17/30 Github

https://github.com/ResearchComputing/python_hpc

CU Research Computing: University of Colorado Boulder 18/30 Lab · Go to the directory where you dowloaded the code · unzip the file · Navigate to Python4Matlab · Launch IPython Notebook ­ ipython notebook ­ dictionary_and_lab

CU Research Computing: University of Colorado Boulder 19/30 To import a notebook, drag the file onto the listing below or click here.

/Users/mlunacek/Documents/tutorials/python/python_hpc/Python4Matlab data_analysis dictionary_and_lab functions_and_lists matplotlib numpyTutorial python4matlab

CU Research Computing: University of Colorado Boulder 20/30 Numpy and Matplotlib

CU Research Computing: University of Colorado Boulder 21/30 To import a notebook, drag the file onto the listing below or click here.

/Users/mlunacek/Documents/tutorials/python/python_hpc/Python4Matlab data_analysis dictionary_and_lab functions_and_lists matplotlib numpyTutorial python4matlab

CU Research Computing: University of Colorado Boulder 22/30 Lab 2

Numpy and Matplotlib

CU Research Computing: University of Colorado Boulder 23/30 To import a notebook, drag the file onto the listing below or click here.

/Users/mlunacek/Documents/tutorials/python/python_hpc/Python4Matlab data_analysis dictionary_and_lab functions_and_lists matplotlib numpyTutorial python4matlab

CU Research Computing: University of Colorado Boulder 24/30 Pandas

Data Analysis

CU Research Computing: University of Colorado Boulder 25/30 To import a notebook, drag the file onto the listing below or click here.

/Users/mlunacek/Documents/tutorials/python/python_hpc/Python4Matlab data_analysis dictionary_and_lab functions_and_lists matplotlib numpyTutorial python4matlab

CU Research Computing: University of Colorado Boulder 26/30 What did we learn? · Python's syntax is clean · Notebook, IPython terminal · Data structures ­ Lists, dictionaries, ­ numpy arrays ­ pandas DataFrame · Ways to act on these containers · Plotting with matplotlib

CU Research Computing: University of Colorado Boulder 27/30 What's next?

CU Research Computing: University of Colorado Boulder 28/30 Links · Scientific Programming: scipy · Parallel Computing ­ IPython Parallel ­ mpi4py · Performance ­ profiling ­ f2py ­ cython ­ ctypes · Templates: jinja2 · SQL database: sqlalchemy · Websites: django · Hardware Raspbery Pi

CU Research Computing: University of Colorado Boulder 29/30 References · Python Scripting for Computational Science · Python Snakes Its Way Into HPC · Andy Terrel: Getting Started with Python in HPC · Python Tutorial · Think Python · Enthought · Anaconda · Data Analysis with Python Thank you!

CU Research Computing: University of Colorado Boulder 30/30