day2/session1.tex
changeset 66 523f788d2147
parent 46 63704b5650f1
child 76 b24c2560f626
--- a/day2/session1.tex	Thu Oct 08 01:30:59 2009 +0530
+++ b/day2/session1.tex	Thu Oct 08 15:33:41 2009 +0530
@@ -146,16 +146,25 @@
   \frametitle{Examples of \num}
 \begin{lstlisting}
 # Simple array math example
->>> from numpy import *
->>> a = array([1,2,3,4])
->>> b = array([2,3,4,5])
+>>> import numpy as np
+>>> a = np.array([1,2,3,4])
+>>> b = np.arange(2,6)
+>>> b
+array([2,3,4,5])
 >>> a*2 + b + 1 # Basic math!
 array([5, 8, 11, 14])
+\end{lstlisting}
+\end{frame}
+
+\begin{frame}[fragile]
+  \frametitle{Examples of \num}
+\begin{lstlisting}
 # Pi and e are defined.
->>> x = linspace(0.0, 10.0, 1000)
->>> x *= 2*pi/10 # inplace.
+>>> x = np.linspace(0.0, 10.0, 1000)
+>>> x *= 2*np.pi/10 # inplace.
 # apply functions to array.
->>> y = sin(x)
+>>> y = np.sin(x)
+>>> z = np.exp(y)
 \end{lstlisting}
 \inctime{5}
 \end{frame}
@@ -178,14 +187,14 @@
   \frametitle{More examples of \num}
 \vspace*{-8pt}
 \begin{lstlisting}
->>> x = array([1., 2, 3, 4])
->>> size(x)
+>>> x = np.array([1., 2, 3, 4])
+>>> np.size(x)
 4
 >>> x.dtype # What is a.dtype?
 dtype('float64')
 >>> x.shape
 (4,)
->>> print rank(x), x.itemsize
+>>> print np.rank(x), x.itemsize
 1 8
 >>> x[0] = 10
 >>> print x[0], x[-1]
@@ -196,7 +205,7 @@
 \begin{frame}[fragile]
   \frametitle{Multi-dimensional arrays}
 \begin{lstlisting}
->>> a = array([[ 0, 1, 2, 3],
+>>> a = np.array([[ 0, 1, 2, 3],
 ...            [10,11,12,13]])
 >>> a.shape # (rows, columns)
 (2, 4)
@@ -206,78 +215,85 @@
 >>> a[1,3] = -1
 >>> a[1] # The second row
 array([10,11,12,-1])
-
 \end{lstlisting}
 \end{frame}
+
 \begin{frame}[fragile]
   \frametitle{Array math}
   \begin{itemize}
   \item Basic \alert{elementwise} math (given two arrays \typ{a, b}):
       \typ{+, -, *, /, \%}
-  \item Inplace operators: \typ{a += b}, or \typ{add(a, b, a)} etc. 
-  \item \typ{sum(x, axis=0)}, 
-        \typ{product(x, axis=0)},
-        \typ{dot(a, bp)}   
+  \item Inplace operators: \typ{a += b}, or \typ{np.add(a, b, a)} etc. 
+  \item \typ{np.sum(x, axis=0)}, 
+        \typ{np.product(x, axis=0)},
+        \typ{np.dot(a, bp)}   
   \end{itemize}
+\begin{lstlisting}
+>>> b=np.array([[0,2,4,2],[1,2,3,4]])
+>>> np.add(a,b,a)
+>>> np.sum(x,axis=1)
+\end{lstlisting}
 \end{frame}
 
 \begin{frame}[fragile]
   \frametitle{Array math cont.}
   \begin{itemize}
-  \item Logical operations: \typ{equal (==)}, \typ{not\_equal (!=)},
-    \typ{less (<)}, \typ{greater (>)} etc.
-  \item Trig and other functions: \typ{sin(x),}
-        \typ{arcsin(x), sinh(x),}
-      \typ{exp(x), sqrt(x)} etc.
+  \item Logical operations: \typ{np.equal (==)}, \typ{np.not\_equal (!=)},
+    \typ{np.less (<)}, \typ{np.greater (>)} etc.
+  \item Trig and other functions: \typ{np.sin(x),}
+        \typ{np.arcsin(x), np.sinh(x),}
+      \typ{np.exp(x), np.sqrt(x)} etc.
   \end{itemize}
+\begin{lstlisting}
+>>> np.greater(a,4)
+>>> np.sqrt(a)
+\end{lstlisting}
 \inctime{10}
 \end{frame}
 
 \subsection{Array Creation \& Slicing, Striding Arrays}
 \begin{frame}[fragile]
   \frametitle{Array creation functions}
-  \begin {block}{\typ{array(object, dtype=None, ...)}}
-  \begin{lstlisting}
-  >>> array( [2,3,4] )  
-  array([2, 3, 4])
-  \end{lstlisting}
-  \end {block}
-  \begin{block}{\typ{linspace(start, stop, num=50, ...)}}
-  \begin{lstlisting}
-  >>> linspace( 0, 2, 4 )   
-  array([0.,0.6666667,1.3333333,2.])
-  \end{lstlisting}
-  \end{block}
   \begin{itemize}
-  \item also try \typ{arange} command
+    \item {\typ{np.array(object,dtype=None,...)}
+    \begin{lstlisting}
+>>> np.array([2,3,4])  
+array([2, 3, 4])
+    \end{lstlisting}
+    \item \typ{np.linspace(start,stop,...)}
+    \begin{lstlisting}
+>>> np.linspace(0, 2, 4)   
+array([0.,0.6666667,1.3333333,2.])
+    \end{lstlisting}
+    \item Also try \typ{np.arange}
   \end{itemize}
 \end{frame}
 
 \begin{frame}[fragile]
   \frametitle{Array creation functions cont.}
   \begin{itemize}  
-  \item \typ{ones(shape, dtype=None, ...)}  
+  \item \typ{np.ones(shape, dtype=None, ...)}  
   \begin{lstlisting} 
-  >>>ones([2,2])
-  array([[ 1.,  1.],
-       [ 1.,  1.]])
+>>>np.ones([2,2])
+array([[ 1.,  1.],
+     [ 1.,  1.]])
   \end{lstlisting}  
-  \item \typ{identity(n)} 
-  \item \typ{ones\_like(x)}  
+  \item \typ{np.identity(n)} 
+  \item \typ{np.ones\_like(x)}  
   \begin{lstlisting} 
-  >>>a = array([[1,2,3],[4,5,6]])
-  >>>ones_like(a)
-    array([[1, 1, 1],
-           [1, 1, 1]])
+>>>a = np.array([[1,2,3],[4,5,6]])
+>>>np.ones_like(a)
+array([[1, 1, 1],
+       [1, 1, 1]])
   \end{lstlisting}
-  \item check out \typ{zeros, zeros\_like, empty}
+  \item Also try \typ{zeros, zeros\_like, empty}
   \end{itemize}
 \end{frame}
 
 \begin{frame}[fragile]
   \frametitle{Slicing arrays}
 \begin{lstlisting}
->>> a = array([[1,2,3], [4,5,6], 
+>>> a = np.array([[1,2,3], [4,5,6], 
                [7,8,9]])
 >>> a[0,1:3]
 array([2, 3])
@@ -327,8 +343,8 @@
     \item Scale the image to 50\%
     \item Introduce some random noise
     \item Smooth the image using a mean filter
-      \\\small{Take the mean of all the neighbouring elements}
-      \\\small{How fast can you do it?}
+      \\\small{Each element in the array is replaced by mean of all the neighbouring elements}
+      \\\small{How fast does your code run?}
     \end{enumerate}
 \inctime{15}
 \end{frame}
@@ -408,7 +424,7 @@
 \begin{frame}[fragile]
   \frametitle{Legends}
 \begin{lstlisting}
->>> x = linspace(0, 2*pi, 1000)
+>>> x = linspace(0, 2*np.pi, 1000)
 >>> plot(x, cos(5*x), 'r--', 
          label='cosine')
 >>> plot(x, sin(5*x), 'g--', 
@@ -435,7 +451,7 @@
 \end{frame}
 
 \begin{frame}[fragile]
-    \frametitle{Note: \typ{pylab} in Python scripts}
+    \frametitle{\typ{pylab} in Python scripts}
 \begin{lstlisting}
 import pylab
 x = pylab.linspace(0, 20, 1000)
@@ -444,7 +460,7 @@
 # Can also use:
 from pylab import linspace, sin, plot
 \end{lstlisting}
-\inctime{5}
+\inctime{10}
 \end{frame}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -742,7 +758,6 @@
     \tiny
     For details see \url{http://matplotlib.sourceforge.net/screenshots/plotmap.py}
   \end{center}
-\inctime{5}
 \end{frame}
 
 
@@ -753,6 +768,7 @@
   \item \url{http://matplotlib.sf.net/tutorial.html}
   \item \url{http://matplotlib.sf.net/screenshots.html}
   \end{itemize}
+\inctime{5}
 \end{frame}
 
 \begin{frame}