Python3.4.3/C3/BasicMatrixOperations/English
Title of script: Basic Matrix Operations
Author: Puneeth, Thirumalesh H S, Arun KP
Keywords: Python, IPython, matrices, determinant, reshape, arange, eigen values, eigen vectors, transpose of matrix


Show Slide title  Welcome to the spoken tutorial on Basic Matrix Operations. 
Show Slide
Objectives

In this tutorial, you will learn to,

Show Slide
System Specifications 
To record this tutorial, I am using

Show Slide
Prerequisites

To practise this tutorial, you should have basic knowledge about
If not, see the relevant Python tutorials on this website. 
Slide: 

Type,
ipython3 
Let us start ipython.

Type ipython3

Type ipython3 and press Enter.

Type,

Let us create a matrix m1.

Type,m1 = matrix([1,2,3,4])  Then type,
m1 is equal to matrix inside brackets inside square brackets 1 comma 2 comma 3 comma 4 
Type,m1  Now type m1 
Point to the output  This creates a matrix with one row and four columns. 
Type,
m1.shape

This can be verified by typing m1.shape

Type,
l1 = [[1,2,3,4],[5,6,7,8]] m2 = matrix(l1) print(m2) 
A list can also be converted to a matrix as follows,

Highlight the output  You can see the matrix m2 with values from list l1. 
Slide:asmatrix 

Highlight according to narration
from numpy import asmatrix,arange m2_array = asmatrix(arange(1,9).reshape(2,4)) m2_array 
Type as shown.

Pause the video.
 
Show Slide
Assignment 1 
Create a two dimensional matrix m3 of shape 2 by 4 with the elements 5, 6, 7, 8, 9, 10, 11, 12.

Switch to the terminal  Switch back to the terminal for the solution. 
Type,
m3 = asmatrix(arange(5,13).reshape(2,4))

Type,
m3 is equal to asmatrix inside brackets arange inside brackets 5 comma 13 dot reshape inside brackets 2 comma 4
You can see the required output. 
Type,
m3 + m2 
Next let us see some matrix operations.

Type,
m3  m2 
Similarly, type m3 minus m2

Type,
6.5 * m2 
Now we can multiply a scalar i.e a number by a matrix as shown. 
Type,

Next we will check the size of m2 by typing,
m2.shape.

Type,
m4 = asmatrix(arange(1,9).reshape(4,2)) 
Let us create another matrix, of the order 4 by 2.
m4 is equal to asmatrix inside brackets arange inside brackets 1 comma 9 dot reshape inside brackets 4 comma 2 
Type
m4.shape 
Now to check the shape, type m4.shape

Type,
m2 * m4 Highlight the output 
The multiplication operator asterisk is used for matrix multiplication.

Type,
print (m4)

Let us now see, how to find out the transpose of a matrix.

Type,
print(m4.T)

Now type,
print inside brackets m4 dot capital T

Show Slide:Determinant of a matrix  We can get the determinant of a square matrix by using the function det() in numpy.linalg module. 
Pause the video.
 
Show Slide: Exercise  Find out the determinant of this 3 by 3 matrix. 
Switch to the terminal for solution.  Switch to the terminal for the solution. 
Type,
from numpy.linalg import det m5 = matrix([[2,3,1],[2,0,1],[1,4,5]]) det(m5) 
Type as shown.
det inside brackets m5

Show Slide
Inverse of a matrix 
We can get the inverse of a square matrix by using inv() function in numpy.linalg module. 
Type,
from numpy.linalg import inv im5 = inv(m5)
im5 
Let us find the inverse of the matrix m5.

Type,
from numpy import eye,allclose allclose(im5 * m5, asmatrix(eye(3)))

Type from numpy import eye,allclose
allclose inside brackets im5 asterisk m5 comma asmatrix inside brackets eye inside brackets 3

Type,
eye? 
To know more about these, we will check the documentation.

Show Slide
Eigen vectors and Eigen values

Let us now move onto Eigen vectors and Eigen values.
eig and eigvals functions are present in numpy.linalg module. 
Type,
from numpy import diag from numpy.linalg import eig m6=asmatrix(diag((1, 2, 3))) 
Let us find out the eigenvalues and eigenvectors of the matrix m6.

Type,
eig(m6) 
Now to see the value, type,eig inside brackets m6 
Highlight diag((1, 2, 3)))  diag inside brackets again inside brackets 1 comma 2 comma 3
creates a diagonal matrix with 1,2,3 as diagonal elements and 0 elsewhere . 
Highlight
(array([1., 2., 3.]), matrix([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]])) 
diag() function is present in numpy module.

Put box to array  The first element in the tuple is an array of three eigen values. 
Put box to matrix  The second element in the tuple is a matrix of three eigen vectors. 
Type,
eig_value = eig(m6)[0] eig_value 
To get eigen values type,eig underscore value is equal to eig inside brackets m6 inside square brackets 0

Type,
eig_vector = eig(m6)[1] 
To get eigen vectors type,eig underscore vector is equal to eig inside brackets m6 inside square brackets 1 
Type,
eig_vector 
Then type eig underscore vector

Type,
from numpy.linalg import eigvals eig_value1 = eigvals(m6) 
The eigen values can also be computed using eigvals() function.

Then type eig_value1

Then type eig underscore value1
You can see that, eig underscore value and eig underscore value1 are same. 
Show Slide
Summary

This brings us to the end of this tutorial. Let us summarize.

Show Slide
Self assessment questions

Here are some self assessment questions for you to solve

Show Slide 13
Solution of self assessment questions

And the answers,

Show Slide Forum  Please post your timed queries in this forum. 
Show Slide Fossee Forum  Please post your general queries on Python in this forum. 
Show slide TBC  FOSSEE team coordinates the TBC project. 
Show Slide
Acknowledgment 
Spoken Tutorial Project is funded by NMEICT, MHRD, Govt. of India.
For more details, visit this website. 
Previous slide  This is Priya from IIT Bombay signing off.
Thanks for watching. 