#+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: Getting started with arrays
#+AUTHOR: FOSSEE
#+EMAIL: info@fossee.in
#+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
* Outline
- Arrays
- why arrays over lists
- Creating arrays
- Array operations
* Overview of Arrays
- Arrays are homogeneous data structures.
- elements have to the same data type
- Arrays are faster compared to lists
- at least /80-100 times/ faster than lists
* Creating Arrays
- Creating a 1-dimensional array
: In []: a1 = array([1, 2, 3, 4])
~[1, 2, 3, 4]~ is a list.
* Creating two-dimensional array
- Creating a 2-dimensional array
: In []: a2 = array([[1,2,3,4],[5,6,7,8]])
here we convert a list of lists to an array making a 2-d array.
- Using ~arange()~ function
: In []: ar = arange(1,9)
* ~reshape()~ method
- To reshape an array
: In []: ar.reshape(2, 4)
: In []: ar.reshape(4, 2)
: In []: ar = ar.reshape(2, 4)
* Creating ~array~ from ~list~.
- ~array()~ method accepts list as argument
- Creating a list
: In []: l1 = [1, 2, 3, 4]
- Creating an array
: In []: a3 = array(l1)
* Exercise 1
Create a 3-dimensional array of the order (2, 2, 4).
* ~.shape~ of array
- ~.shape~
To find the shape of the array
: In []: a2.shape
- ~.shape~
returns a tuple of shape
* Exercise 2
Find out the shape of the other arrays(a1, a3, ar) that we have created.
* Homogeneous data
- All elements in array should be of same type
: In []: a4 = array([1,2,3,'a string'])
* Implicit type casting
: In []: a4
All elements are type casted to string type
* ~identity()~, ~zeros()~ methods
- ~identity(n)~
Creates an identity matrix, a square matrix of order (n, n) with diagonal elements 1 and others 0.
- ~zeros((m, n))~
Creates an ~m X n~ matrix with all elements 0.
* Learning exercise
- Find out about
- ~zeros_like()~
- ~ones()~
- ~ones_like()~
* Array operations
- ~a1 * 2~
returns a new array with all elements of ~a1~ multiplied by ~2~.
- Similarly ~+~, ~-~ \& ~/~.
- ~a1 + 2~
returns a new array with all elements of ~a1~ summed with ~2~.
- ~a1 += 2~
adds ~2~ to all elements of array ~a1~.
- Similarly ~-=~, ~*=~ \& ~/=~.
- ~a1 + a2~
does elements-wise addition.
- Similarly ~-~, ~*~ \& ~/~.
- ~a1 * a2~
does element-wise multiplication
*Note* - array(A) * array(B) does element wise multiplication and not matrix multiplication
* Summary
In this tutorial we covered,
- Basics of arrays
- Creating arrays
- Arrays from lists
- Basic array operations
* Thank you!
#+begin_latex
\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_latex