summaryrefslogtreecommitdiff
path: root/using_python_modules/slides.org
blob: 199e63a46a6dc81462aa0168cdce82efad3de47c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
#+LaTeX_CLASS: beamer
#+LaTeX_CLASS_OPTIONS: [presentation]
#+BEAMER_FRAME_LEVEL: 1

#+BEAMER_HEADER_EXTRA: \usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
#+COLUMNS: %45ITEM %10BEAMER_env(Env) %10BEAMER_envargs(Env Args) %4BEAMER_col(Col) %8BEAMER_extra(Extra)
#+PROPERTY: BEAMER_col_ALL 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 :ETC

#+LaTeX_CLASS: beamer
#+LaTeX_CLASS_OPTIONS: [presentation]

#+LaTeX_HEADER: \usepackage[english]{babel} \usepackage{ae,aecompl}
#+LaTeX_HEADER: \usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}

#+LaTeX_HEADER: \usepackage{listings}

#+LaTeX_HEADER:\lstset{language=Python, basicstyle=\ttfamily\bfseries,
#+LaTeX_HEADER:  commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
#+LaTeX_HEADER:  showstringspaces=false, keywordstyle=\color{blue}\bfseries}

#+TITLE: 
#+AUTHOR: FOSSEE
#+EMAIL:     
#+DATE:    

#+DESCRIPTION: 
#+KEYWORDS: 
#+LANGUAGE:  en
#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
#+OPTIONS:   TeX:t LaTeX:nil skip:nil d:nil todo:nil pri:nil tags:not-in-toc

* 
#+begin_latex
\begin{center}
\vspace{12pt}
\textcolor{blue}{\huge Using python modules}
\end{center}
\vspace{18pt}
\begin{center}
\vspace{10pt}
\includegraphics[scale=0.95]{../images/fossee-logo.png}\\
\vspace{5pt}
\scriptsize Developed by FOSSEE Team, IIT-Bombay. \\ 
\scriptsize Funded by National Mission on Education through ICT\\
\scriptsize  MHRD,Govt. of India\\
\includegraphics[scale=0.30]{../images/iitb-logo.png}\\
\end{center}
#+end_latex
* Objectives
  At the end of this tutorial, you will be able to ,

 - Execute python scripts from command line.
 - Use import in scripts.
 - Import scipy and pylab modules.
 - Use python standard modules and 3rd party modules.
* Pre-requisite
Spoken tutorial on -
- Using plot interactively.
- Embellishing a plot.
- Saving plots.
* Running Python script from command line
  - Create a script, open text editor and type the following
    : print "hello world!"
    : print 
  - Save the script as ~hello.py~
* Running Python script from command line (cont'd)
  - Run the script
    : $ python hello.py
  /Syntax :/ *python filename*
* Four plot problem
  #+begin_latex
    \begin{center}
      \includegraphics[scale=0.4]{four_plot}    
    \end{center}
  #+end_latex   
* Fix ~linspace()~ problem
  : from scipy import *
* Fix ~plot()~ problem
  : from pylab import *
* Better way of fixing
  : from scipy import linspace
  instead of
  : from scipy import *
    ~*~ means import all functions from name-space ~scipy~.
* Instead of ~*~
  :  from scipy import linspace, pi, sin
  :  from pylab import plot, legend, annotate
  :  from pylab import xlim, ylim, title, show
  Is better than, ~from scipy import *~ \& ~from pylab import *~.
* Another Fix
  #+begin_src python
    import scipy
    import pylab
    x = scipy.linspace(-5*scipy.pi, 5*scipy.pi, 500)
    pylab.plot(x, x, 'b')
    pylab.plot(x, -x, 'b')
    pylab.plot(x, scipy.sin(x), 'g', linewidth=2)
    pylab.plot(x, x*scipy.sin(x), 'r', linewidth=3)
    pylab.legend(['x', '-x', 'sin(x)', 'xsin(x)'])
    pylab.annotate('origin', xy = (0, 0))
    pylab.xlim(-5*scipy.pi, 5*scipy.pi)
    pylab.ylim(-5*scipy.pi, 5*scipy.pi)
  #+end_src
* Exercise 1
 - Write a python script to plot a sine wave from 
  #+begin_latex
    $-2\Pi$
  #+end_latex
  to 
  #+begin_latex
    $2\Pi$
  #+end_latex
  .
* What is a module?
  Module is simply a file containing Python definitions and
  statements. Definitions from a module can be imported into other
  modules or into the main module.
* Python standard library
  Python has a very rich standard library of modules.
  - Few libraries
    - Math: ~math~, ~random~
    - Internet access: ~urllib2~, ~smtplib~
    - System, Command line arguments: ~sys~
    - Operating system interface: ~os~
    - regular expressions: ~re~
    - compression: ~gzip~, ~zipfile~, ~tarfile~
  - More information
    - [[http://docs.python.org/library]]
* Summary
  In this tutorial, we have learnt to,

 - Run scripts from command line, 
 - Import modules by specifying the module name followed by  
    an asterisk. 
 - Import only the required functions from modules by specifying 
    the function name.
 - Use python standard library.
* Evaluation
1. Which among this is correct ? 

   - from scipy import plot
   - from numpy import plot
   - from matplotlib import plot
   - from pylab import plot

2. Which among these libraries is part of python standard library ?

   - Mayavi
   - scipy
   - matplotlib
   - urllib2

3. Functions ``xlim()'' and ``ylim()'' can be imported to the current
   name-space as,

   - from pylab import xlim, ylim
   - import pylab
   - from scipy import xlim, ylim
   - import scipy
* Solutions
1. from pylab import plot

2. urllib2

3. from pylab import xlim, ylim
* 
#+begin_latex
 \begin{block}{}
  \begin{center}
  \textcolor{blue}{\Large THANK YOU!} 
  \end{center}
  \end{block}
\begin{block}{}
  \begin{center}
    For more Information, visit our website\\
    \url{http://fossee.in/}
  \end{center}  
  \end{block}
#+end_latex