% Created 2010-11-07 Sun 15:18 \documentclass[presentation]{beamer} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage{fixltx2e} \usepackage{graphicx} \usepackage{longtable} \usepackage{float} \usepackage{wrapfig} \usepackage{soul} \usepackage{t1enc} \usepackage{textcomp} \usepackage{marvosym} \usepackage{wasysym} \usepackage{latexsym} \usepackage{amssymb} \usepackage{hyperref} \tolerance=1000 \usepackage[english]{babel} \usepackage{ae,aecompl} \usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet} \usepackage{listings} \lstset{language=Python, basicstyle=\ttfamily\bfseries, commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen}, showstringspaces=false, keywordstyle=\color{blue}\bfseries} \providecommand{\alert}[1]{\textbf{#1}} \title{Getting started with arrays} \author{FOSSEE} \date{} \usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent} \begin{document} \maketitle \begin{frame} \frametitle{Outline} \label{sec-1} \begin{itemize} \item Arrays \begin{itemize} \item why arrays over lists \end{itemize} \item Creating arrays \item Array operations \end{itemize} \end{frame} \begin{frame} \frametitle{Overview of Arrays} \label{sec-2} \begin{itemize} \item Arrays are homogeneous data structures. \begin{itemize} \item elements have to the same data type \end{itemize} \item Arrays are faster compared to lists \begin{itemize} \item at least \emph{80-100 times} faster than lists \end{itemize} \end{itemize} \end{frame} \begin{frame}[fragile] \frametitle{Creating Arrays} \label{sec-3} \begin{itemize} \item Creating a 1-dimensional array \end{itemize} \begin{verbatim} In []: a1 = array([1, 2, 3, 4]) \end{verbatim} \texttt{[1, 2, 3, 4]} is a list. \end{frame} \begin{frame}[fragile] \frametitle{Creating two-dimensional array} \label{sec-4} \begin{itemize} \item Creating a 2-dimensional array \end{itemize} \begin{verbatim} In []: a2 = array([[1,2,3,4],[5,6,7,8]]) \end{verbatim} here we convert a list of lists to an array making a 2-d array. \begin{itemize} \item Easier method of creating array with consecutive elements. \end{itemize} \begin{verbatim} In []: ar = arange(1,9) \end{verbatim} \end{frame} \begin{frame}[fragile] \frametitle{\texttt{reshape()} method} \label{sec-5} \begin{itemize} \item To reshape an array \end{itemize} \begin{verbatim} In []: ar.reshape(2, 4) In []: ar.reshape(4, 2) In []: ar = ar.reshape(2, 4) \end{verbatim} \end{frame} \begin{frame}[fragile] \frametitle{Creating \texttt{array} from \texttt{list}.} \label{sec-6} \begin{itemize} \item \texttt{array()} method accepts list as argument \item Creating a list \begin{verbatim} In []: l1 = [1, 2, 3, 4] \end{verbatim} \item Creating an array \begin{verbatim} In []: a3 = array(l1) \end{verbatim} \end{itemize} \end{frame} \begin{frame} \frametitle{Exercise 1} \label{sec-7} Create a 3-dimensional array of the order (2, 2, 4). \end{frame} \begin{frame}[fragile] \frametitle{\texttt{.shape} of array} \label{sec-8} \begin{itemize} \item \texttt{.shape} To find the shape of the array \begin{verbatim} In []: a1.shape \end{verbatim} \item \texttt{.shape} returns a tuple of shape \end{itemize} \end{frame} \begin{frame} \frametitle{Exercise 2} \label{sec-9} Find out the shape of the other arrays(a2, a3, ar) that we have created. \end{frame} \begin{frame}[fragile] \frametitle{Homogeneous data} \label{sec-10} \begin{itemize} \item All elements in array should be of same type \begin{verbatim} In []: a4 = array([1,2,3,'a string']) \end{verbatim} \end{itemize} \end{frame} \begin{frame}[fragile] \frametitle{Implicit type casting} \label{sec-11} \begin{verbatim} In []: a4 \end{verbatim} All elements are type casted to string type \end{frame} \begin{frame} \frametitle{\texttt{identity()}, \texttt{zeros()} methods} \label{sec-12} \begin{itemize} \item \texttt{identity(n)} Creates an identity matrix, a square matrix of order (n, n) with diagonal elements 1 and others 0. \item \texttt{zeros((m, n))} Creates an \texttt{m X n} matrix with all elements 0. \end{itemize} \end{frame} \begin{frame} \frametitle{Learning exercise} \label{sec-13} \begin{itemize} \item Find out about \begin{itemize} \item \texttt{zeros\_like()} \item \texttt{ones()} \item \texttt{ones\_like()} \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Array operations} \label{sec-14} \begin{itemize} \item \texttt{a1 * 2} returns a new array with all elements of \texttt{a1} multiplied by \texttt{2}. \begin{itemize} \item Similarly \texttt{+}, \texttt{-} \& \texttt{/}. \end{itemize} \item \texttt{a1 + 2} returns a new array with all elements of \texttt{a1} summed with \texttt{2}. \item \texttt{a1 += 2} adds \texttt{2} to all elements of array \texttt{a1}. \begin{itemize} \item Similarly \texttt{-=}, \texttt{*=} \& \texttt{/=}. \end{itemize} \item \texttt{a1 + a2} does elements-wise addition. \begin{itemize} \item Similarly \texttt{-}, \texttt{*} \& \texttt{/}. \end{itemize} \item \texttt{a1 * a2} does element-wise multiplication \end{itemize} \textbf{Note} - array(A) * array(B) does element wise multiplication and not matrix multiplication \end{frame} \begin{frame} \frametitle{Summary} \label{sec-15} In this tutorial we covered, \begin{itemize} \item Basics of arrays \item Creating arrays \item Arrays from lists \item Basic array operations \end{itemize} \end{frame} \begin{frame} \frametitle{Thank you!} \label{sec-16} \begin{block}{} \begin{center} This spoken tutorial has been produced by the \textcolor{blue}{FOSSEE} team, which is funded by the \end{center} \begin{center} \textcolor{blue}{National Mission on Education through \\ Information \& Communication Technology \\ MHRD, Govt. of India}. \end{center} \end{block} \end{frame} \end{document}