Modified Matrix operation part of cheat sheet 4.
authorShantanu <shantanu@fossee.in>
Wed, 18 Nov 2009 22:30:43 +0530
changeset 315 141f3903d4e8
parent 314 c9f05808e1c4
child 316 6108f2007151
Modified Matrix operation part of cheat sheet 4.
day1/cheatsheet4.tex
--- a/day1/cheatsheet4.tex	Wed Nov 18 19:26:48 2009 +0530
+++ b/day1/cheatsheet4.tex	Wed Nov 18 22:30:43 2009 +0530
@@ -24,25 +24,42 @@
 \large{FOSSEE}
 \end{center}
 \section{Matrices}
-Inputting a Matrix
+\subsection{Basics}
+Matrix Creation\\
+\typ{In []: C = array([[1,1,2], [2,4,1], [-1,3,7]])}\\
+It creates C matrix of shape 3x3\\
+Shape is dimenions of given array.
 \begin{lstlisting}
-In []: C = array([[1,1,2],
-                  [2,4,1],
-                  [-1,3,7]])
-In []: B = ones_like(C)
-In []: A = ones((3,2))
-In []: I = identity(3)
+In []: C.shape 
+Out[]: (3, 3)
+In []: shape([[1,2],[4,5],[3,0]])
+Out[]: (3, 2)
 \end{lstlisting}
-Accessing Elements
+\typ{In []: B = ones_like(C)} \\
+B would be array of ones with the same shape and type as C.\\
+\typ{In []: A = ones((3,2))} \\
+A would be new array of given shape(arguments), filled with ones.\\ 
+\typ{In []: I = identity(3)}\\
+I would be identity matrix of shape 3x3
+
+\subsection{Accessing Elements}
 \begin{lstlisting}
+In []: C
+Out[]: 
+array([[ 1,  1,  2],
+       [ 2,  4,  1],
+       [-1,  3,  7]])
 In []: C[1,2]
 Out[]: 1
-
+\end{lstlisting}
+Two indexes seperated by ',' specifies row, column. So \kwrd{C[1,2]} gets third element of second row(indices starts from 0).
+\newpage
+\begin{lstlisting}
 In []: C[1]
 Out[]: array([2, 4, 1])
 \end{lstlisting}
-
-Changing elements
+Single index implies complete row.
+\subsection{Changing elements}
 \begin{lstlisting}
 In []: C[1,1] = -2
 In []: C
@@ -59,19 +76,27 @@
        [-1,  3,  7]])
 \end{lstlisting}
 
-Slicing
+\subsection{Slicing}
+Accessing rows with Matricies is straightforward. But If one wants to access particular Column, or want a sub-matrix, Slicing is the way to go.
 \begin{lstlisting}
 In []: C[:,1]
 Out[]: array([1, 0, 3])
-
+\end{lstlisting}
+First index(:) specifies row(':' implies all the rows) and second index(1) specifies column(second column).
+\begin{lstlisting}
 In []: C[1,:]
 Out[]: array([0, 0, 0])
-
+\end{lstlisting}
+Here we get second row(1), all columns(':') of C matrix.
+\newpage
+\begin{lstlisting}
 In []: C[0:2,:]
 Out[]: 
 array([[1, 1, 2],
        [0, 0, 0]])
-
+\end{lstlisting}
+Result is sub-matrix with first and second row(endpoint is excluded), and all columns from C.
+\begin{lstlisting}
 In []: C[1:3,:]
 Out[]: 
 array([[ 0,  0,  0],
@@ -81,7 +106,9 @@
 Out[]: 
 array([[1, 1, 2],
        [0, 0, 0]])
-
+\end{lstlisting}
+\typ{':2'} => start from first row, till and excluding third row.
+\begin{lstlisting}
 In []: C[1:,:]
 Out[]: 
 array([[ 0,  0,  0],
@@ -92,32 +119,42 @@
 array([[ 0,  0],
        [-1,  3]])
 \end{lstlisting}
-
-Striding
+\typ{'1:'} => Start from second row, till last row\\
+\typ{':2'} => Start from first column, till and excluding third column.
+\subsection{Striding}
+Often apart from submatrix, one needs to get some mechanism to jump a step. For example, how can we have all alternate rows of a Matrix. \\
+Following method will return Matrix with alternate rows.
 \begin{lstlisting}
 In []: C[::2,:]
 Out[]: 
 array([[ 1,  1,  2],
        [-1,  3,  7]])
-
+\end{lstlisting}
+\typ{C[startR:stopR:stepR,startC:stopC:stepC]} => Syntax of mentioning starting index, ending index, and step to jump.\\
+In above mentioned case, \typ{'::2'} means, start from first row, till last row(both are blank), with step of 2, that is, skipping alternate row. After first row, C[startR], next row would be C[startR+stepR] and so on.
+\begin{lstlisting}
 In []: C[:,::2]
 Out[]: 
 xarray([[ 1,  2],
        [ 0,  0],
        [-1,  7]])
-
+\end{lstlisting}
+Same as above, just that here we get matrix with each alternate column and all rows.
+\begin{lstlisting}
 In []: C[::2,::2]
 Out[]: 
 array([[ 1,  2],
        [-1,  7]])
 \end{lstlisting}
 
-Matrix Operations
+\Section{Matrix Operations}
+For a Matrix A and B of equal shapes.
 \begin{lstlisting}
 In []: A.T # Transpose
 In []: sum(A) # Sum of all elements
 In []: A+B # Addition
-In []: A*B # Product
+In []: A*B # Element wise product
+In []: dot(A,b) #Matrix multiplication
 In []: inv(A) # Inverse
 In []: det(A) # Determinant
 \end{lstlisting}