Professional Documents
Culture Documents
Python Another Handout
Python Another Handout
Prabhu Ramachandran
Introduction to Python
Outline
1
Introduction Introduction to Python Python Tutorial Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous Numerics & Plotting NumPy Arrays Plotting: Matplotlib SciPy Standard library Quick Tour
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Introduction to Python
Introduction
Creator and BDFL: Guido van Rossum BDFL == Benevolent Dictator For Life Conceived in December 1989 The name Python: Monty Pythons Flying Circus Current stable version of Python is 2.5.x PSF license (like BSD: no strings attached) Highly cross platform Runs on the Nokia series 60!
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Introduction to Python
Resources
Available as part of any sane GNU/Linux distribution Web: http://www.python.org Documentation: http://www.python.org/doc Free Tutorials:
Ofcial Python tutorial:
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Introduction to Python
Why Python?
High level, interpreted, modular, OO Easy to learn Easy to read code Much faster development cycle Powerful interactive interpreter Rapid application development Powerful standard library Interfaces well to C++, C and FORTRAN libraries In short: there is little you cant do with it
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Introduction to Python
A quote
I came across Python and its Numerical extension in 1998 . . . I quickly fell in love with Python programming which is a remarkable statement to make about a programming language. If I had not seen others with the same view, I might have seriously doubted my sanity. Travis Oliphant (creator of NumPy)
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Introduction to Python
Open Source, Free Portable Python is a real programming language: large and small programs Can do much more than just array and math
Wrap large C++ codes Build large code bases via SCons Interactive data analysis/plotting Parallel application Job scheduling on a custom cluster Miscellaneous scripts
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Introduction to Python
Can be slow for high-performance applications This can be fairly easily overcome by using C/C++/FORTRAN extensions
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Introduction to Python
Use cases
NASA: Python Streamlines Space Shuttle Mission Design AstraZeneca Uses Python for Collaborative Drug Discovery ForecastWatch.com Uses Python To Help Meteorologists Industrial Light & Magic Runs on Python Zope: Commercial grade CMS RedHat: install scripts, sys-admin tools Numerous success stories:
http://www.pythonology.com/success
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Introduction to Python
Before we begin
This is only an introduction Python is a full-edged programming language Please read the tutorial It is very well written and can be read in one afternoon
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Python is interpreted Interpreted vs. Compiled Interpreted languages allow for rapid testing/prototyping Dynamically typed Full introspection of code at runtime Did I say dynamic? Does not force OO or a particular programming paradigm down your throat!
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Preliminaries . . .
Will follow the Ofcial Python tutorial No lexical blocking Indentation species scope Leads to easier to read code!
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Starting up: python or ipython Quitting: Control-D or Control-Z (on Win32) Can use it like a calculator Can execute one-liners via the -c option: python -c
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
IPython
Recommended interpreter, IPython:
http://ipython.scipy.org Better than the default Python shell Supports tab completion by default Easier object introspection Shell access! Command system to allow extending its own behavior Supports history (across sessions) and logging Can be embedded in your own Python code Support for macros A exible framework for your own custom interpreter Other miscellaneous conveniences Well get back to this later
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
object? shows docstring/help for any Python object object?? presents more docs (and source if possible) Debugging with %pdb magic: pops up pdb on errors Access history (saved over earlier sessions also)
Use <UpArrow>: move up history Use <Ctrl-r> string: search history backwards Use Esc >: get back to end of history
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Basic concepts
Dynamically typed Assignments need not specify a type a a a a = = = = 1 1.1 " foo " SomeClass ( )
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Basic concepts
No lexical scoping Scope determined by indentation f o r i i n range ( 1 0 ) : print " i n s i d e loop : " , # Do something i n t h e l o o p . print i , i i p r i n t " l o o p i s done ! " # T h i s i s o u t s i d e t h e l o o p ! Assignment to an object is by reference Essentially, names are bound to objects
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Basic types
Basic objects: numbers (oat, int, long, complex), strings, tuples, lists, dictionaries, functions, classes, types etc. Types are of two kinds: mutable and immutable Immutable types: numbers, strings, None and tuples Immutables cannot be changed in-place Mutable types: lists, dictionaries, instances, etc. Mutable objects can be changed
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
What is an object?
A loose and informal but handy description An object is a particular instance of a general class of things Real world example Consider the class of cars made by Honda A Honda Accord on the road, is a particular instance of the general class of cars It is an object in the general sense of the term
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
The object in the computer follows a similar idea An object has attributes (or state) and behavior Object contains or manages data (attributes) and has methods (behavior) Together this lets one create representation of real things on the computer Programmers then create objects and manipulate them through their methods to get things done In Python everything is essentially an object you dont have to worry about it
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Numbers
>>> a = 1 # I n t . >>> l = 1000000L # Long >>> e = 1.01325 e5 # f l o a t >>> f = 3.14159 # f l o a t >>> c = 1+1 j # Complex ! >>> p r i n t f c / a (3.14159+3.14159 j ) >>> p r i n t c . r e a l , c . imag 1.0 1.0 >>> abs ( c ) 1.4142135623730951
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Boolean
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Strings
s = this is a string s = T h i s one has " quotes " i n s i d e ! s = " The r e v e r s e w i t h s i n g l e quotes i n s i d e ! " l = "A l o n g s t r i n g spanning s e v e r a l l i n e s \ one more l i n e \ yet another " t = " " "A t r i p l e quoted s t r i n g does n o t need t o be escaped a t t h e end and " can have nested quotes " and whatnot . " " "
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Strings
>>> word = " h e l l o " >>> 2 word + " w o r l d " # A r i t h m e t i c on s t r i n g s h e l l o h e l l o world >>> p r i n t word [ 0 ] + word [ 2 ] + word [ 1] hlo >>> # S t r i n g s are " immutable " . . . word [ 0 ] = H Traceback ( most r e c e n t c a l l l a s t ) : F i l e "<stdin >" , l i n e 1 , in ? TypeError : o b j e c t doesnt s u p p o r t i t e m assignment >>> l e n ( word ) # The l e n g t h o f t h e s t r i n g 5 >>> s = u Unicode s t r i n g s ! # unicode s t r i n g >>> # Raw s t r i n g s ( note t h e l e a d i n g r ) . . . raw_s = r A \ LaTeX s t r i n g $ \ alpha \ nu$
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
More on strings
>>> a = h e l l o w o r l d >>> a . s t a r t s w i t h ( h e l l ) True >>> a . endswith ( l d ) True >>> a . upper ( ) HELLO WORLD >>> a . upper ( ) . l o w e r ( ) h e l l o world >>> a . s p l i t ( ) [ h e l l o , world ] >>> . j o i n ( [ a , b , c ] ) abc >>> x , y = 1 , 1.234 >>> x i s %s , y i s %s %(x , y ) x i s 1 , y i s 1.234 >>> # c o u l d a l s o do : x i s %d , y i s %f %( x , y ) See http://docs.python.org/lib/typesseq-strings.html
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Lists
Lists are mutable Items are indexed at 0 Last element is -1 Length: len(list)
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
List: examples
>>> a = [ spam , eggs , 100 , 1234] >>> a [ 0 ] spam >>> a [ 3 ] 1234 >>> a [ 2] 100 >>> a [ 1 : 1 ] [ eggs , 100] >>> a [ : 2 ] + [ bacon , 2 2] [ spam , eggs , bacon , 4 ] >>> 2 a [ : 3 ] + [ Boe ! ] [ spam , eggs , 100 , spam , eggs , 100 , Boe ! ]
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
>>> a = [ spam , eggs , 100 , 1234] >>> a [ 2 ] = a [ 2 ] + 23 >>> a [ spam , eggs , 123 , 1234] >>> a = [ spam , eggs , 100 , 1234] >>> a [ 0 : 2 ] = [ 1 , 1 2 ] # Replace some i t e m s >>> a [ 1 , 12 , 123 , 1234] >>> a [ 0 : 2 ] = [ ] # Remove some i t e m s >>> a [ 1 2 3 , 1234]
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
List methods
>>> a = [ spam , eggs , 100 , 1234] >>> l e n ( a ) 4 >>> a . r e v e r s e ( ) >>> a [ 1 2 3 4 , 100 , eggs , spam ] >>> a . append ( [ x , 1 ] ) # L i s t s can c o n t a i n l i s t s . >>> a [ 1 2 3 4 , 100 , eggs , spam , [ x , 1 ] ] >>> a . extend ( [ 1 , 2 ] ) # Extend t h e l i s t . >>> a [ 1 2 3 4 , 100 , eggs , spam , [ x , 1 ] , 1 , 2 ]
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Tuples
>>> t = ( 0 , 1 , 2 ) >>> p r i n t t [ 0 ] , t [ 1 ] , t [ 2 ] , t [ 1 ] , t [ 2 ] , t [ 3] 0 1 2 2 1 0 >>> # Tuples are immutable ! . . . t [0] = 1 Traceback ( most r e c e n t c a l l l a s t ) : F i l e "<stdin >" , l i n e 1 , in ? TypeError : o b j e c t doesn t s u p p o r t i t e m assignment
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Dictionaries
dict[key] = value keys() returns all keys of the dict values() returns the values of the dict has_key(key) returns if key is in the dict
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Dictionaries: example
>>> t e l = { j a c k : 4098 , sape : 4139} >>> t e l [ guido ] = 4127 >>> t e l { sape : 4139 , guido : 4127 , j a c k : 4098} >>> t e l [ j a c k ] 4098 >>> del t e l [ sape ] >>> t e l [ i r v ] = 4127 >>> t e l { guido : 4127 , i r v : 4127 , j a c k : 4098} >>> t e l . keys ( ) [ guido , i r v , j a c k ] >>> t e l . has_key ( guido ) True
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Control ow
if/elif/else for while break, continue, else may be used to further control pass can be used when syntactically necessary but nothing needs to be done
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
If example
x = i n t ( r a w _ i n p u t ( " Please e n t e r an i n t e g e r : " ) ) # r a w _ i n p u t asks t h e user f o r i n p u t . # i n t ( ) t y p e c a s t s t h e r e s u l t i n g s t r i n g i n t o an i n t . i f x < 0: x = 0 p r i n t Negative changed t o zero e l i f x == 0 : p r i n t Zero e l i f x == 1 : print Single else : p r i n t More
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
If example
>>> a = [ c a t , window , d e f e n e s t r a t e ] >>> i f c a t i n a : p r i n t "meaw" ... ... meaw >>> p e t s = { c a t : 1 , dog : 2 , c r o c : 10} >>> i f c r o c i n p e t s : print pets [ croc ] ... ... 10
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
for example
>>> a = [ c a t , window , d e f e n e s t r a t e ] >>> f o r x i n a : ... print x , len ( x ) ... cat 3 window 6 d e f e n e s t r a t e 12 >>> k n i g h t s = { g a l l a h a d : t h e pure , . . . r o b i n : t h e brave } >>> f o r k , v i n k n i g h t s . i t e r i t e m s ( ) : ... print k , v ... g a l l a h a d t h e pure r o b i n t h e brave
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
[ a , b , c ] i , x i n enumerate ( a ) : print i , x
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
while example
>>> ... ... >>> ... ... ... 1 1 2 3 5 8 # Fibonacci series : # t h e sum o f two elements d e f i n e s t h e n e x t a, b = 0, 1 while b < 1 0 : print b a , b = b , a+b
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Functions
Support default and keyword arguments Scope of variables in the function is local Mutable items are passed by reference First line after denition may be a documentation string (recommended!) Function denition and execution denes a name bound to the function You can assign a variable to a function!
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Functions: examples
>>> ... ... ... ... ... ... >>> ... 1 1 >>> >>> 1 1 def f i b ( n ) : # w r i t e F i b o n a c c i s e r i e s up t o n " " " P r i n t a F i b o n a c c i s e r i e s up t o n . " " " a, b = 0, 1 while b < n : print b , a , b = b , a+b # Now c a l l t h e f u n c t i o n we j u s t d e f i n e d : f i b (2000) 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 f = f i b # Assign a v a r i a b l e t o a f u n c t i o n f (10) 2 3 5 8
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
def ask_ok ( prompt , r e t r i e s =4 , c o m p l a i n t = Yes o r no ! ) : while True : ok = r a w _ i n p u t ( prompt ) i f ok i n ( y , ye , yes ) : r e t u r n True i f ok i n ( n , no , nop , nope ) : r e t u r n False retries = retries 1 i f r e t r i e s < 0: r a i s e I O E r r o r , bad user print complaint
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
def p a r r o t ( v o l t a g e , s t a t e = a s t i f f , a c t i o n = voom , t y p e = Norwegian Blue ) : p r i n t " T h i s p a r r o t wouldn t " , a c t i o n , p r i n t " i f you p u t " , v o l t a g e , " V o l t s t h r o u g h i t . " p r i n t " L o v e l y plumage , t h e " , t y p e p r i n t " I t s " , s t a t e , " ! " p a r r o t (1000) p a r r o t ( a c t i o n = VOOOOOM , v o l t a g e = 1000000) p a r r o t ( a thousand , s t a t e = pushing up t h e d a i s i e s ) p a r r o t ( a m i l l i o n , b e r e f t o f l i f e , jump )
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Modules
Dene variables, functions and classes in a le with a .py extension This le becomes a module! Modules are searched in the following:
Current directory Standard: /usr/lib/python2.3/site-packages/ etc. Directories specied in PYTHONPATH sys.path: current path settings (from the sys module)
from module import name1, name2, name2 where name1 etc. are names in the module, module from module import * imports everything from module, use only in interactive mode
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Modules: example
# f o o . py some_var = 1 def f i b ( n ) : # w r i t e F i b o n a c c i s e r i e s up t o n " " " P r i n t a F i b o n a c c i s e r i e s up t o n . " " " a, b = 0, 1 while b < n : print b , a , b = b , a+b # EOF >>> >>> 1 1 >>> 1 import f o o foo . f i b (10) 2 3 5 8 f o o . some_var
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Namespaces
A mapping from names to objects Modules introduce a namespace So do classes The running scripts namespace is __main__ A modules namespace is identied by its name The standard functions (like len) are in the __builtin__ namespace Namespaces help organize different names and their bindings to different objects
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Exceptions
Pythons way of notifying you of errors Several standard exceptions: SyntaxError, IOError etc. Users can also raise errors Users can create their own exceptions Exceptions can be caught via try/except blocks
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Exception: examples
>>> 10 ( 1 / 0 ) Traceback ( most r e c e n t c a l l l a s t ) : F i l e "<stdin >" , l i n e 1 , in ? Z e r o D i v i s i o n E r r o r : i n t e g e r d i v i s i o n or modulo by zero >>> 4 + spam 3 Traceback ( most r e c e n t c a l l l a s t ) : F i l e "<stdin >" , l i n e 1 , in ? NameError : name spam i s not d e f i n e d >>> 2 + 2 Traceback ( most r e c e n t c a l l l a s t ) : F i l e "<stdin >" , l i n e 1 , in ? TypeError : cannot concatenate s t r and i n t o b j e c t s
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Exception: examples
>>> while True : ... try : ... x = i n t ( r a w _ i n p u t ( " E n t e r a number : " ) ) ... break ... except V a l u e E r r o r : ... p r i n t " I n v a l i d number , t r y again . . . " ... >>> # To r a i s e e x c e p t i o n s . . . r a i s e V a l u e E r r o r , " your e r r o r message " Traceback ( most r e c e n t c a l l l a s t ) : F i l e "<stdin >" , l i n e 2 , in ? V a l u e E r r o r : your e r r o r message
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Lets you create objects that mimic a real problem being simulated Makes problem solving more natural and elegant Easier to create code Allows for code-reuse Polymorphism
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Class denitions when executed create class objects Instantiating the class object creates an instance of the class
class Foo ( o b j e c t ) : pass # class object created . # Create an i n s t a n c e o f Foo . f = Foo ( ) # Can a s s i g n an a t t r i b u t e t o t h e i n s t a n c e f . a = 100 print f . a 100
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Classes . . .
All attributes are accessed via the object.attribute syntax Both class and instance attributes are supported Methods represent the behavior of an object: crudely think of them as functions belonging to the object All methods in Python are virtual Inheritance through subclassing Multiple inheritance is supported No special public and private attributes: only good conventions object.public(): public object._private() & object.__priv(): non-public
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Classes: examples
class MyClass ( o b j e c t ) : " " " Example c l a s s ( t h i s i s t h e c l a s s d o c s t r i n g ) . " " " i = 12345 # A c l a s s a t t r i b u t e def f ( s e l f ) : " " " T h i s i s t h e method d o c s t r i n g " " " return h e l l o world >>> a = MyClass ( ) # c r e a t e s an i n s t a n c e >>> a . f ( ) h e l l o world >>> # a . f ( ) i s e q u i v a l e n t t o MyClass . f ( a ) . . . # T h i s a l s o e x p l a i n s why f has a s e l f argument . . . . MyClass . f ( a ) h e l l o world
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Classes (continued)
self is conventionally the rst argument for a method
In previous example, a.f is a method object When a.f is called, it is passed the instance a as the rst argument If a method called __init__ exists, it is called when the object is created If a method called __del__ exists, it is called before the object is garbage collected Instance attributes are set by simply setting them in self Other special methods (by convention) like __add__ let you dene numeric types:
http://docs.python.org/ref/specialnames.html http://docs.python.org/ref/numeric-types.html
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Classes: examples
class Bag ( MyClass ) : # Shows how t o d e r i v e c l a s s e s def _ _ i n i t _ _ ( s e l f ) : # c a l l e d on o b j e c t c r e a t i o n . s e l f . data = [ ] # an i n s t a n c e a t t r i b u t e def add ( s e l f , x ) : s e l f . data . append ( x ) def addtwice ( s e l f , x ) : s e l f . add ( x ) s e l f . add ( x ) >>> a = Bag ( ) >>> a . f ( ) # I n h e r i t e d method h e l l o world >>> a . add ( 1 ) ; a . addtwice ( 2 ) >>> a . data [1 , 2 , 2]
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Derived classes
Call the parents __init__ if needed If you dont need a new constructor, no need to dene it in subclass Can also use the super built-in function class AnotherBag ( Bag ) : def _ _ i n i t _ _ ( s e l f ) : # Must c a l l p a r e n t s _ _ i n i t _ _ e x p l i c i t l y Bag . _ _ i n i t _ _ ( s e l f ) # A l t e r n a t i v e l y use t h i s : super ( AnotherBag , s e l f ) . _ _ i n i t _ _ ( ) # Now setup any more data . s e l f . more_data = [ ]
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Classes: polymorphism
class Drawable ( o b j e c t ) : def draw ( s e l f ) : # Just a s p e c i f i c a t i o n . pass class Square ( Drawable ) : def draw ( s e l f ) : # draw a square . class C i r c l e ( Drawable ) : def draw ( s e l f ) : # draw a c i r c l e . class A r t i s t ( Drawable ) : def draw ( s e l f ) : f o r o b j i n s e l f . drawables : o b j . draw ( )
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Stand-alone scripts
Consider a le f.py: # ! / u s r / b i n / env python " " " Module l e v e l documentation . " " " # F i r s t l i n e t e l l s t h e s h e l l t h a t i t should use Python # t o i n t e r p r e t t h e code i n t h e f i l e . def f ( ) : print " f " # Check i f we are r u n n i n g s ta n d al o ne o r as module . # When imported , __name__ w i l l n o t be __main__ i f __name__ == __main__ : # T h i s i s n o t executed when f . py i s i m p o r t e d . f ()
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Log the session using %logstart, %logon and %logoff %run [options] file[.py] running Python code %run -d [-b<N>]: debug script with pdb N is the line
number to break at (defaults to 1) %run -t: time the script %run -p: Prole the script
%prun runs a statement/expression under the proler %macro [options] macro_name n1-n2 n3-n4 n6 save specied lines to a macro with name macro_name
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
%colors lets you change the color scheme to NoColor, Linux, LightBG
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
%who, %whos: print information on variables %save [options] filename n1-n2 n3-n4: save lines to a le %time statement: Time execution of a Python statement or expression %timeit [-n<N> -r<R> [-t|-c]] statement: time execution using Pythons timeit module
Can dene and use proles to setup IPython differently: math, scipy, numeric, pysh etc.
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
File handling
>>> ... >>> >>> >>> ... >>> >>> ... >>> # Reading f i l e s : f = open ( / path / t o / f i l e _ n a m e ) data = f . read ( ) # Read e n t i r e f i l e . l i n e = f . r e a d l i n e ( ) # Read one l i n e . # Read e n t i r e f i l e appending each l i n e i n t o a l i s t lines = f . readlines ( ) f . close ( ) # close the f i l e . # Writing f i l e s : f = open ( / path / t o / f i l e _ n a m e , w ) f . w r i t e ( h e l l o world \ n )
tell(): returns int of current position seek(pos): moves current position to specied byte
Call close() when done using a le
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Math
math module provides basic math routines for oats cmath module provides math routies for complex numbers random: provides pseudo-random number generators for various distributions
These are always available and part of the standard library More serious math is provided by the NumPy/SciPy modules these are not standard and need to be installed separately
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
Timing code: use the time module Read up on time.time() and time.clock()
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Preliminaries Data types Control ow, functions Modules, exceptions, classes Miscellaneous
dir([object]) function: attributes of given object type(object): returns type information str(), repr(): convert object to string representation isinstance, issubclass assert statements let you do debugging assertions in code csv module: reading and writing CSV les pickle: lets you save and load Python objects (serialization) os.path: common path manipulations
Check out the Python Library reference:
http://docs.python.org/lib/lib.html
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Manipulating large Python lists for scientic computing is slow Most complex computations can be reduced to a few standard operations The numpy module provides:
An efcient and powerful array type for various common data types Abstracts out the most commonly used standard operations on arrays
Numeric was the rst, then came numarray. numpy is the latest and is the future This course uses numpy and only covers the absolute basics
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Basic concepts
numpy arrays are of a xed size (arr.size) and have the same type (arr.dtype) numpy arrays may have arbitrary dimensionality The shape of an array is the extent (length) of the array along each dimension The rank(arr) of an array is the dimensionality of the array The arr.itemsize is the number of bytes (8-bits) used for each element of the array Note: The shape and rank may change as long as the size of the array is xed Note: len(arr) != arr.size in general Note: By default array operations are performed elementwise Indices start from 0
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Examples of numpy
# Simple a r r a y math example >>> from numpy import >>> a = a r r a y ( [ 1 , 2 , 3 , 4 ] ) >>> b = a r r a y ( [ 2 , 3 , 4 , 5 ] ) >>> a + b # Element wise a d d i t i o n ! array ( [ 3 , 5 , 7 , 9 ] ) >>> p r i n t p i , e # P i and e are d e f i n e d . 3.14159265359 2.71828182846 # Create a r r a y from 0 t o 10 >>> x = arange ( 0 . 0 , 1 0 . 0 , 0 . 0 5 ) >>> x = 2 p i / 1 0 # m u l t i p l y a r r a y by s c a l a r v a l u e array ( [ 0 . , 0 . 0 3 1 4 , . . . , 6 . 2 5 2 ] ) # apply f u n c t i o n s to array . >>> y = s i n ( x )
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Multi-dimensional arrays
>>> a = a r r a y ( [ [ 0 , 1 , 2 , 3 ] , ... [10 ,11 ,12 ,13]]) >>> a . shape # ( rows , columns ) (2 , 4) # Accessing and s e t t i n g v a l u e s >>> a [ 1 , 3 ] 13 >>> a [ 1 , 3 ] = 1 >>> a [ 1 ] # The second row array ([10 ,11 ,12 , 1]) # F l a t t e n / r a v e l a r r a y s t o 1D a r r a y s >>> a . f l a t # o r r a v e l ( a ) array ([0 ,1 ,2 ,3 ,10 ,11 ,12 , 1]) # Note : f l a t r e f e r e n c e s o r i g i n a l memory
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Slicing arrays
>>> a = a r r a y ( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] ] ) >>> a [ 0 , 1 : 3 ] array ( [ 2 , 3 ] ) >>> a [ 1 : , 1 : ] array ( [ [ 5 , 6] , [8 , 9 ] ] ) >>> a [ : , 2 ] array ( [ 3 , 6 , 9 ] ) # Striding . . . >>> a [ 0 : : 2 , 0 : : 2 ] array ( [ [ 1 , 3] , [7 , 9 ] ] ) # A l l these s l i c e s are r e f e r e n c e s t o t h e same memory !
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Array math
Basic elementwise math (given two arrays a, b): a + b add(a, b) a - b, subtract(a, b) a * b, multiply(a, b) a / b, divide(a, b) a % b, remainder(a, b) a ** b, power(a, b) Inplace operators: a += b, or add(a, b, a) etc. Logical operations: equal (==), not_equal (!=), less (<), greater (>) etc. Trig and other functions: sin(x), arcsin(x), sinh(x), exp(x), sqrt(x) etc. sum(x, axis=0), product(x, axis=0): sum and product of array elements
dot(a, b)
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Advanced
Only scratched the surface of numpy Ufunc methods: reduce, accumulate, outer,
reduceat
Typecasting More functions: take, choose, where, compress,
concatenate
Array broadcasting and None
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
About matplotlib
Easy to use, scriptable, Matlab-like 2D plotting Publication quality gures and interactive capabilities Plots, histograms, power spectra, bar charts, errorcharts, scatterplots, etc. Also does polar plots, maps, contours Support for simple TEX markup Multiple output backends (images, EPS, SVG, wx, Agg, Tk, GTK) Cross-platform: Linux, Win32, Mac OS X Good idea to use via IPython: ipython -pylab From scripts use: import pylab
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
More information
http://matplotlib.sf.net/tutorial.html http://matplotlib.sf.net/screenshots.html
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Basic plotting . . .
# Set p r o p e r t i e s o f o b j e c t s : >>> p l o t ( x , s i n ( x ) , l i n e w i d t h = 2 . 0 , c o l o r = r ) >>> l , = p l o t ( x , s i n ( x ) ) >>> s e t p ( l , l i n e w i d t h = 2 . 0 , c o l o r = r ) >>> l . s e t _ l i n e w i d t h ( 2 . 0 ) ; l . s e t _ c o l o r ( r ) >>> draw ( ) # Redraws c u r r e n t f i g u r e . >>> s e t p ( l ) # P r i n t s a v a i l a b l e p r o p e r t i e s >>> c l o s e ( ) # Closes t h e f i g u r e . # Multiple figures : >>> f i g u r e ( 1 ) ; p l o t ( x , s i n ( x ) ) >>> f i g u r e ( 2 ) ; p l o t ( x , tanh ( x ) ) >>> f i g u r e ( 1 ) ; t i t l e ( Easy as 1 ,2 ,3 )
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Basic plotting . . .
>>> >>> >>> >>> >>> >>> >>> >>> >>> >>>
figure (1) s u b p l o t ( 2 1 1 ) # Same as s u b p l o t ( 2 , 1 , 1 ) p l o t ( x , cos (5 x ) exp( x ) ) subplot (2 , 1 , 2) p l o t ( x , cos (5 x ) , r , l a b e l = c o s i n e ) p l o t ( x , s i n (5 x ) , g , l a b e l = s i n e ) legend ( ) # Or legend ( [ c o s i n e , s i n e ] ) text (1 ,0 , (1 ,0) ) axes = gca ( ) # C u r r e n t a x i s f i g = gcf ( ) # Current f i g u r e
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
X-Y plot
Example code
t 1 = arange ( 0 . 0 , 5 . 0 , 0 . 1 ) t 2 = arange ( 0 . 0 , 5 . 0 , 0 . 0 2 ) t 3 = arange ( 0 . 0 , 2 . 0 , 0 . 0 1 ) subplot (211) p l o t ( t1 , cos (2 p i t 1 ) exp( t 1 ) , bo , t2 , cos (2 p i t 2 ) exp( t 2 ) , k ) g r i d ( True ) t i t l e ( A t a l e o f 2 s u b p l o t s ) y l a b e l ( Damped ) subplot (212) p l o t ( t3 , cos (2 p i t 3 ) , r ) g r i d ( True ) x l a b e l ( time ( s ) ) y l a b e l ( Undamped )
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Errorbar
Example code
t = arange ( 0 . 1 , 4 , 0 . 1 ) s = exp( t ) e = 0.1 abs ( randn ( l e n ( s ) ) ) f = 0.1 abs ( randn ( l e n ( s ) ) ) g = 2e h = 2 f e r r o r b a r ( t , s , [ e , g ] , f , fmt= o ) x l a b e l ( D i s t a n c e (m) ) y l a b e l ( H e i g h t (m) ) t i t l e ( Mean and s t a n d a r d e r r o r \ as a f u n c t i o n o f d i s t a n c e )
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Example code
d t = 0.01 t = arange ( dt , 2 0 . 0 , d t ) subplot (311) semilogy ( t , exp( t / 5 . 0 ) ) y l a b e l ( semilogy ) g r i d ( True ) subplot (312) semilogx ( t , s i n (2 p i t ) ) y l a b e l ( semilogx ) g r i d ( True ) # minor g r i d on t o o gca ( ) . x a x i s . g r i d ( True , which= minor ) subplot (313) l o g l o g ( t , 20 exp( t / 1 0 . 0 ) , basex =4) g r i d ( True ) y l a b e l ( l o g l o g base 4 on x )
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Histogram
Example code
mu, sigma = 100 , 15 x = mu + sigma randn (10000) # t h e h i s t o g r a m o f t h e data n , bins , patches = h i s t ( x , 100 , normed =1) # add a b e s t f i t l i n e y = normpdf ( bins , mu, sigma ) l = p l o t ( bins , y , r , l i n e w i d t h =2) x l i m ( 4 0 , 160) x l a b e l ( Smarts ) y l a b e l ( P ) t i t l e ( r $ \ rm { IQ : } \ / \mu= 1 0 0 , \ / \ sigma=15$ )
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Bar charts
Example code
N = 5 menMeans = ( 2 0 , 35 , 30 , 35 , 27) menStd = ( 2 , 3 , 4 , 1 , 2) # t h e x l o c a t i o n s f o r t h e groups i n d = arange (N) # t h e w i d t h o f t h e bars w i d t h = 0.35 p1 = bar ( ind , menMeans , width , c o l o r = r , y e r r =menStd ) womenMeans = ( 2 5 , 32 , 34 , 20 , 25) womenStd = ( 3 , 5 , 2 , 3 , 3) p2 = bar ( i n d + width , womenMeans , width , c o l o r = y , y e r r =womenStd ) y l a b e l ( Scores ) t i t l e ( Scores by group and gender ) x t i c k s ( i n d + width , ( G1 , G2 , G3 , G4 , G5 ) ) x l i m ( width , l e n ( i n d ) ) y t i c k s ( arange ( 0 , 4 1 , 1 0 ) ) legend ( ( p1 [ 0 ] , p2 [ 0 ] ) , ( Men , Women ) , shadow=True )
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Pie charts
Example code
# make a square f i g u r e and axes figure (1 , f i g s i z e =(8 ,8)) ax = axes ( [ 0 . 1 , 0 . 1 , 0 . 8 , 0 . 8 ] ) l a b e l s = Frogs , Hogs , Dogs , Logs f r a c s = [15 ,30 ,45 , 10] explode = ( 0 , 0 . 0 5 , 0 , 0 ) p i e ( f r a c s , explode=explode , l a b e l s = l a b e l s , a u t o p c t = %1.1 f%% , shadow=True ) t i t l e ( R a i n i n g Hogs and Dogs , bbox ={ f a c e c o l o r : 0 . 8 , pad : 5 } )
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Scatter plots
Example code
N = 30 x = 0.9 rand (N) y = 0.9 rand (N) # 0 t o 10 p o i n t r a d i u s e s area = p i (10 rand (N)) 2 volume = 400 + rand (N) 450 s c a t t e r ( x , y , s=area , marker= o , c=volume , alpha = 0 . 7 5 ) x l a b e l ( r $ \ D e l t a _ i $ , s i z e = xl a r g e ) y l a b e l ( r $ \ D e l t a _ { i +1} $ , s i z e = xl a r g e ) t i t l e ( r Volume and p e r c e n t change ) g r i d ( True ) colorbar ( ) savefig ( scatter )
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Polar
Example code
figure ( figsize =(8 ,8)) ax = axes ( [ 0 . 1 , 0 . 1 , 0 . 8 , 0 . 8 ] , p o l a r =True , a x i s b g = #d5de9c ) r = arange ( 0 , 1 , 0 . 0 0 1 ) t h e t a = 22 p i r p o l a r ( t h e t a , r , c o l o r = #ee8d18 , lw =3) # the radius of the g r i d l a b e l s s e t p ( ax . t h e t a g r i d l a b e l s , y =1.075) t i t l e ( r " $ \ t h e t a =4\ p i r " , f o n t s i z e =20)
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Contours
Example code
x = arange ( 3.0 , 3 . 0 , 0 . 0 2 5 ) y = arange ( 2.0 , 2 . 0 , 0 . 0 2 5 ) X , Y = meshgrid ( x , y ) Z1 = b i v a r i a t e _ n o r m a l ( X , Y , 1 . 0 , 1 . 0 , 0 . 0 , 0 . 0 ) Z2 = b i v a r i a t e _ n o r m a l ( X , Y , 1 . 5 , 0 . 5 , 1 , 1 ) # d i f f e r e n c e o f Gaussians Z = 10.0 ( Z2 Z1 ) im = imshow ( Z , i n t e r p o l a t i o n = b i l i n e a r , o r i g i n = lower , cmap=cm . gray , e x t e n t =( 3 ,3 , 2 ,2)) l e v e l s = arange ( 1.2 , 1 . 6 , 0 . 2 ) # l a b e l every second l e v e l c l a b e l (CS, l e v e l s [ 1 : : 2 ] , i n l i n e =1 , f m t = %1.1 f , f o n t s i z e =14) CS = c o n t o u r ( Z , l e v e l s , o r i g i n = lower , l i n e w i d t h s =2 , e x t e n t =( 3 ,3 , 2 ,2)) # make a c o l o r b a r f o r t h e c o n t o u r l i n e s CB = c o l o r b a r (CS, s h r i n k = 0 . 8 , extend= both ) t i t l e ( Lines with c o l o r b a r ) hot ( ) ; f l a g ( )
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Velocity vectors
Example code
X , Y = meshgrid ( arange (0 ,2 p i , . 2 ) , arange (0 ,2 p i , . 2 ) ) U = cos ( X) V = s i n ( Y) Q = quiver (X [ : : 3 , : : 3 ] , Y [ : : 3 , : : 3 ] , U[ : : 3 , : : 3 ] , V[ : : 3 , : : 3 ] , color= r , units= x , linewidths =(2 ,) , e d g e c o lo r s =( k ) , h e a d a x i s l e n g t h =5 ) qk = q u i v e r k e y (Q, 0 . 5 , 0 . 0 3 , 1 , 1 m/ s , fontproperties= { weight : bold } ) a x i s ([ 1 , 7 , 1, 7 ] ) t i t l e ( t r i a n g u l a r head ; s c a l e \ w i t h x view ; b l a c k edges )
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Maps
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library NumPy Arrays Plotting: Matplotlib SciPy
Using SciPy
import scipy
Built on NumPy Provides modules for statistics, optimization, integration, linear algebra, Fourier transforms, signal and image processing, genetic algorithms, ODE solvers, special functions, and more Used widely by scientists world over Details are beyond the scope of this tutorial
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Quick Tour
Standard library
Very powerful Batteries included Example standard modules taken from the tutorial Operating system interface: os System, Command line arguments: sys Regular expressions: re Math: math, random Internet access: urllib2, smtplib Data compression: zlib, gzip, bz2, zipfile, and tarfile Unit testing: doctest and unittest
And a whole lot more!
http://docs.python.org/lib/lib.html
Prabhu Ramachandran Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Quick Tour
Stdlib: examples
>>> import os >>> os . system ( date ) F r i Jun 10 2 2 : 1 3 :0 9 IST 2005 0 >>> os . getcwd ( ) / home / prabhu >>> os . c h d i r ( / tmp ) >>> import os >>> d i r ( os ) < r e t u r n s a l i s t o f a l l module f u n c t i o n s > >>> h e l p ( os ) < e x t e n s i v e manual page from module s d o c s t r i n g s >
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Quick Tour
Stdlib: examples
>>> import sys >>> # P r i n t t h e l i s t o f command l i n e args t o Python . . . p r i n t sys . argv [ ] >>> import r e # Regular e x p r e s s i o n s >>> r e . f i n d a l l ( r \ b f [ az ] , . . . which f o o t o r hand f e l l f a s t e s t ) [ foot , f e l l , fastest ] >>> r e . sub ( r ( \ b [ az ] + ) \ 1 , r \ 1 , . . . cat i n the the hat ) cat i n the hat
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Quick Tour
Stdlib: examples
>>> import math >>> math . cos ( math . p i / 4 . 0 ) 0.70710678118654757 >>> math . l o g (1024 , 2 ) 10.0 >>> import random >>> random . c h o i c e ( [ apple , pear , banana ] ) pear
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Quick Tour
Stdlib: examples
>>> import u r l l i b 2 >>> f = u r l l i b 2 . u r l o p e n ( h t t p : / / www. python . org / ) >>> p r i n t f . read ( 1 0 0 ) <!DOCTYPE h t m l PUBLIC " //W3C / / DTD HTML 4.01 T r a n s i t i o n a l / <?xml s t y l e s h e e t h r e f = " . / css / h t 2 h t m l
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Quick Tour
Stdlib: examples
>>> import z l i b >>> s = w i t c h which has which w i t c h e s w r i s t watch >>> l e n ( s ) 41 >>> t = z l i b . compress ( s ) >>> l e n ( t ) 37 >>> z l i b . decompress ( t ) w i t c h which has which w i t c h e s w r i s t watch >>> z l i b . crc32 ( t ) 1438085031
Prabhu Ramachandran
Introduction to Python
Introduction Python Tutorial Numerics & Plotting Standard library Quick Tour
Summary
Introduced Python Basic syntax Basic types and data structures Control ow Functions Modules Exceptions Classes Standard library
Prabhu Ramachandran
Introduction to Python