Difference between revisions of "Python-3.4.3/C3/Basic-Matrix-Operations/English"

From Script | Spoken-Tutorial
Jump to: navigation, search
Line 318: Line 318:
 
|-
 
|-
 
| style="background-color:#ffffff;border-top:0.5pt solid #000001;border-bottom:0.5pt solid #000001;border-left:0.5pt solid #000001;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Show Slide:Determinant of a matrix
 
| style="background-color:#ffffff;border-top:0.5pt solid #000001;border-bottom:0.5pt solid #000001;border-left:0.5pt solid #000001;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Show Slide:Determinant of a matrix
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| The '''determinant''' of a '''square matrix''' is obtained by using the '''function det() '''in''' numpy.linalg module'''.
+
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| We can get the  '''determinant''' of a '''square matrix''' by using the '''function det() '''in''' numpy.linalg module'''.
  
 
|-
 
|-
Line 357: Line 357:
  
 
'''Inverse''' of a '''matrix'''
 
'''Inverse''' of a '''matrix'''
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| The '''inverse''' of a '''square matrix''' can be obtained using '''inv() function '''in''' numpy.linalg module'''.
+
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| We can get the  '''inverse''' of a '''square matrix''' by using '''inv() function '''in''' numpy.linalg module'''.
  
 
|-
 
|-
Line 494: Line 494:
  
  
'''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 .
+
'''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 .
  
  

Revision as of 18:56, 27 November 2018

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


Visual Cue
Narration
Show Slide title Welcome to the spoken tutorial on Basic Matrix Operations.
Show Slide

Objectives


In this tutorial, you will learn to,
  • Create matrices from lists
  • Perform basic matrix operations like
    • addition
    • subtraction and
    • multiplication
  • Perform operations to find out
    • determinant of a matrix
    • inverse of a matrix
    • eigenvalues and eigenvectors of a matrix
Show Slide

System Specifications

To record this tutorial, I am using
  • Ubuntu Linux 16.04 operating system
  • Python 3.4.3
  • IPython 5.1.0
Show Slide

Pre-requisites


To practise this tutorial, you should have basic knowledge about
  • Lists
  • arrays and accessing parts of arrays and
  • theoretical knowledge of matrix operations

If not, see the relevant Python tutorials on this website.

Slide:
  • In Python, we create a matrix using numpy matrix class.
  • Matrix operations can be done using numpy operators and functions.
Type,

ipython3

Let us start ipython.


Open the terminal.

Type ipython3


Press Enter

Type ipython3 and press Enter.


From here onwards, remember to press the Enter key after typing every command on the terminal.

Type,


from numpy import matrix

m1 = matrix([1,2,3,4])

m1

Point to the output

Let us create a matrix m1.


Type from numpy import matrix


Then type,

m1 is equal to matrix inside brackets inside square brackets 1 comma 2 comma 3 comma 4


Now type m1


This creates a matrix with one row and four columns.

Type,

m1.shape


Highlight the output

This can be verified by typing m1.shape


This gives the output as (1, 4)

Type,

l1 = [[1,2,3,4],[5,6,7,8]]

m2 = matrix(l1)

print(m2)


Highlight the output

A list can also be converted to a matrix as follows,


Type as shown.


You can see the matrix m2 with values from list l1.

Slide:asmatrix
  • To convert an array to a matrix, use the asmatrix method in numpy module.
  • We can use arange and reshape methods to generate an array.
Highlight according to narration


Type,

from numpy import asmatrix,arange

m2_array = asmatrix(arange(1,9).reshape(2,4))

m2_array

Type as shown.


arange is a method available in numpy.


Here it returns an array of evenly spaced values between 1 and 9.


reshape is used to change the shape of the array to 2 rows and 4 columns.


asmatrix is a method available in numpy and it interprets the input as a matrix.

Pause the video.


Try this exercise and then resume 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.


Hint: Use arange() and reshape() methods and asmatrix() function.

Switch to the terminal Switch back to the terminal for the solution.
Type,

m3 = asmatrix(arange(5,13).reshape(2,4))


Type, m3

Type,

m3 is equal to asmatrix inside brackets arange inside brackets 5 comma 13 dot reshape inside brackets 2 comma 4


Type, m3

You can see the required output.

Type,

m3 + m2

Next let us see some matrix operations.


Type, m3 plus m2


It performs element by element addition, that is matrix addition.


Note that both the matrices should be of the same shape.

Type,

m3 - m2

Similarly, type m3 minus m2


It performs matrix subtraction, that is element by element subtraction.


Note that both the matrices should be of the same shape.

Type,

6.5 * m2

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


m2.shape

Next we will check the size of m2 by typing,

m2.shape.


We get a tuple (2, 4).


Matrix m2 is of the shape, two by four,

Type,

m4 = asmatrix(arange(1,9).reshape(4,2))

Let us create another matrix, of the order 4 by 2.


Type,

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


We get (4,2) as the shape of m4.

Type,

m2 * m4

Highlight the output

The multiplication operator asterisk is used for matrix multiplication.


Type m2 asterisk m4


Now we get output as multiplication of m2 and m4.

Type,

print (m4)


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


To see the content of m4, type print inside brackets m4

Type,

print(m4.T)


Point to the output

Now type,

print inside brackets m4 dot capital T


As you saw, m4 dot capital T will give the transpose of a matrix.

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.


Try this exercise and resume 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.


The determinant of m5 can be found by issuing the command,

det inside brackets m5


We get determinant of m5 as output.

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)


Type,

im5

Let us find the inverse of the matrix m5.


Type as shown.


Then to see the the inverse, type

im5

Type,

from numpy import eye,allclose

allclose(im5 * m5, asmatrix(eye(3)))


Highlight eye


Highlight asmatrix(eye(3)))


Highlight allclose

Type from numpy import eye,allclose


Then type,

allclose inside brackets im5 asterisk m5 comma asmatrix inside brackets eye inside brackets 3


This returns True.


We know that multiplication of a matrix with its inverse gives the identity matrix.


Identity matrix is created using eye() function. It is present in the numpy module.


Here asmatrix inside brackets eye inside brackets 3 gives identity matrix of size 3.


allclose is a function that returns True if two arrays are element-wise equal.

Type,

eye?

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


Type the function name followed by a question mark in IPython console.


Type eye question mark


To quit the documentation, press q.


It is a good practice to read documentation of new functions that you come across.

Show Slide

eigenvectors and eigenvalues


Let us now move onto eigenvectors and eigenvalues.


Given a square matrix A

  • eig inside brackets A inside square brackets 0 gives its eigenvalues
  • eig inside brackets A inside square brackets 1 gives its eigenvector
  • eigvals inside brackets A gives its eigenvalues

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)))


Type,

eig(m6)


Highlight diag((1, 2, 3)))


Highlight

(array([1., 2., 3.]), matrix([[1., 0., 0.],

[0., 1., 0.],

[0., 0., 1.]]))


Put box to array


Put box to matrix

Let us find out the eigenvalues and eigenvectors of the matrix m6.


Type as shown.


Now to see the value, type,eig inside brackets m6


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 .


diag() function is present in numpy module.


Note that eig inside brackets m6 returned a tuple of one array and one matrix.


The first element in the tuple is an array of three eigenvalues.


The second element in the tuple is a matrix of three eigenvectors.

Type,

eig_value = eig(m6)[0]

eig_value

To get eigenvalues type,eig underscore value is equal to eig inside brackets m6 inside square brackets 0


Then type eig underscore value


As you can see eig underscore value contains eigenvalues.

Type,

eig_vector = eig(m6)[1]

eig_vector

To get eigenvectors type,eig underscore vector is equal to eig inside brackets m6 inside square brackets 1


Then type eig underscore vector


eig underscore vector contains eigenvector.

Type,

from numpy.linalg import eigvals

eig_value1 = eigvals(m6)


Then type eig_value1


Show both the outputs.

The eigenvalues can also be computed using eigvals() function.


Type as shown.


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.


In this tutorial, we have learnt to,

  • Create matrices using arrays
  • Add, subtract and multiply matrices
  • Take scalar multiple of a matrix
  • Use the function det() to find the determinant of a matrix
  • Find out the inverse of a matrix using the function inv()
  • Find out the eigenvectors and eigenvalues of a matrix, using the functions eig() and eigvals()
Show Slide

Self assessment questions


Here are some self assessment questions for you to solve
  1. A and B are two matrix objects of appropriate sizes. Which one of the below is correct for matrix multiplication?
  2. eig inside brackets A inside square brackets 1 and eigvals inside brackets A are the same. True or False?
Show Slide 13

Solution of self assessment questions


And the answers,
  1. Matrix multiplication between A and B is done by, A asterisk B
  2. False. eig inside brackets A inside square brackets 0 and eigvals inside brackets A are same, that is both will give the eigenvalues of matrix A.
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

http://spoken-tutorial.org

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.

Contributors and Content Editors

Nancyvarkey, Priyacst