Difference between revisions of "Python-3.4.3/C3/Basic-Matrix-Operations/English"
Nancyvarkey (Talk | contribs) |
|||
Line 31: | Line 31: | ||
** '''determinant''' of a '''matrix''' | ** '''determinant''' of a '''matrix''' | ||
** '''inverse''' of a '''matrix''' | ** '''inverse''' of a '''matrix''' | ||
− | ** ''' | + | ** '''Eigen values''' and '''Eigen vectors''' of a '''matrix ''' |
|- | |- | ||
Line 53: | Line 53: | ||
* '''Lists''' | * '''Lists''' | ||
− | * ''' | + | * '''Arrays '''and '''accessing parts of arrays '''and |
− | * | + | * Theoretical knowledge of '''matrix operations''' |
If not, see the relevant '''Python''' tutorials on this website. | If not, see the relevant '''Python''' tutorials on this website. | ||
Line 88: | Line 88: | ||
'''from numpy import matrix''' | '''from numpy import matrix''' | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Let us create a '''matrix m1.''' | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Let us create a '''matrix m1.''' | ||
Line 99: | Line 93: | ||
Type '''from numpy import matrix''' | Type '''from numpy import matrix''' | ||
− | + | |- | |
− | Then type, | + | | 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;"| Type,'''m1 = matrix<nowiki>([1,2,3,4])</nowiki>''' |
+ | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Then type, | ||
'''m1 '''''is equal to''''' matrix '''''inside brackets inside square brackets '''''1''''' comma '''''2''''' comma '''''3''''' comma '''''4''' | '''m1 '''''is equal to''''' matrix '''''inside brackets inside square brackets '''''1''''' comma '''''2''''' comma '''''3''''' comma '''''4''' | ||
− | + | |- | |
− | + | | 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;"| Type,'''m1''' | |
− | Now type '''m1''' | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Now type '''m1''' |
− | + | |- | |
− | + | | 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;"| Point to the output | |
− | This creates a '''matrix''' with one row and four columns. | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| This creates a '''matrix''' with one row and four columns. |
|- | |- | ||
Line 130: | Line 125: | ||
'''print(m2)''' | '''print(m2)''' | ||
− | |||
− | |||
− | |||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| A '''list''' can also be converted to a '''matrix''' as follows, | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| A '''list''' can also be converted to a '''matrix''' as follows, | ||
Line 138: | Line 130: | ||
Type as shown. | Type as shown. | ||
− | + | |- | |
− | You can see the '''matrix m2''' with values from '''list l1.''' | + | | 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;"| Highlight the output |
+ | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| You can see the '''matrix m2''' with values from '''list l1.''' | ||
|- | |- | ||
Line 183: | Line 176: | ||
Assignment 1 | Assignment 1 | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Create a two dimensional '''matrix | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Create a two dimensional '''matrix m3 '''of '''shape''' 2 by 4 with the '''elements''' 5, 6, 7, 8, 9, 10, 11, 12. |
Line 204: | Line 197: | ||
− | Type | + | Type''' m3''' |
You can see the required output. | You can see the required output. | ||
Line 251: | Line 244: | ||
− | We get a '''tuple | + | We get a '''tuple (2, 4).''' |
− | '''Matrix | + | '''Matrix m2''' is of the shape, two by four. |
|- | |- | ||
Line 314: | Line 307: | ||
− | As you saw, '''m4''' dot''' capital T''' will give the transpose of a '''matrix.''' | + | As you saw, '''m4''' dot''' capital T''' will give the '''transpose''' of a '''matrix.''' |
|- | |- | ||
Line 346: | Line 339: | ||
− | The '''determinant''' of '''m5''' can be found by issuing the '''command | + | The '''determinant''' of '''m5''' can be found by issuing the '''command''' |
'''det '''''inside brackets '''''m5''' | '''det '''''inside brackets '''''m5''' | ||
Line 376: | Line 369: | ||
− | Then to see the the '''inverse''', type | + | Then to see the the '''inverse''', type '''im5''' |
− | + | ||
− | '''im5''' | + | |
|- | |- | ||
Line 439: | Line 430: | ||
| 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 | | 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 | ||
− | ''' | + | '''Eigen vectors''' and '''Eigen values''' |
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Let us now move onto ''' | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Let us now move onto '''Eigen vectors''' and '''Eigen values.''' |
Line 463: | Line 454: | ||
'''m6=asmatrix(diag((1, 2, 3)))''' | '''m6=asmatrix(diag((1, 2, 3)))''' | ||
+ | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Let us find out the '''eigenvalues''' and '''eigenvectors''' of the '''matrix m6'''. | ||
− | Type, | + | |
+ | Type as shown. | ||
+ | |||
+ | |- | ||
+ | | 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;"| Type, | ||
'''eig(m6)''' | '''eig(m6)''' | ||
+ | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Now to see the value, type,'''eig '''''inside brackets '''''m6''' | ||
+ | |- | ||
+ | | 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;"| Highlight '''diag((1, 2, 3)))''' | ||
+ | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| '''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 | + | | 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;"| Highlight |
'''<nowiki>(array([1., 2., 3.]), matrix([[1., 0., 0.],</nowiki>''' | '''<nowiki>(array([1., 2., 3.]), matrix([[1., 0., 0.],</nowiki>''' | ||
Line 479: | Line 479: | ||
'''<nowiki>[0., 0., 1.]]))</nowiki>''' | '''<nowiki>[0., 0., 1.]]))</nowiki>''' | ||
− | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"|'''diag() function '''is present in''' numpy module.''' | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | '''diag() function '''is present in''' numpy module.''' | + | |
Note that '''eig '''''inside brackets '''''m6''' returned a '''tuple''' of one '''array''' and one '''matrix'''. | Note that '''eig '''''inside brackets '''''m6''' returned a '''tuple''' of one '''array''' and one '''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;"| Put box to array | ||
+ | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"|The first '''element''' in the '''tuple''' is an '''array''' of three '''eigen values'''. | ||
− | + | |- | |
− | + | | 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;"| Put box to 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 second '''element''' in the '''tuple''' is a '''matrix''' of three '''eigen vectors'''. | |
− | The second '''element''' in the '''tuple''' is a '''matrix''' of three ''' | + | |
|- | |- | ||
Line 514: | Line 498: | ||
'''eig_value''' | '''eig_value''' | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| To get ''' | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| To get '''eigen values '''type,'''eig''''' underscore '''''value''''' is equal to''''' eig''''' inside brackets '''''m6 '''''inside square brackets '''''0''' |
Line 526: | Line 510: | ||
'''<nowiki>eig_vector = eig(m6)[1]</nowiki>''' | '''<nowiki>eig_vector = eig(m6)[1]</nowiki>''' | ||
+ | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| To get '''eigen vectors '''type,'''eig '''''underscore '''''vector '''''is equal to''''' eig''''' inside brackets '''''m6 '''''inside square brackets '''''1''' | ||
+ | |||
+ | |- | ||
+ | | 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;"| Type, | ||
'''eig_vector''' | '''eig_vector''' | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Then type '''eig '''''underscore '''''vector''' |
− | + | ||
− | + | ||
− | Then type '''eig '''''underscore '''''vector''' | + | |
− | '''eig '''''underscore '''''vector '''contains ''' | + | '''eig '''''underscore '''''vector '''contains '''eigen vector'''. |
|- | |- | ||
Line 542: | Line 527: | ||
'''eig_value1 = eigvals(m6)''' | '''eig_value1 = eigvals(m6)''' | ||
+ | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| The '''eigen values''' can also be computed using '''eigvals() function'''. | ||
− | Then type '''eig_value1''' | + | Type as shown. |
+ | |||
+ | |- | ||
+ | | 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;"| Then type '''eig_value1''' | ||
Show both the outputs. | Show both the outputs. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | Then type '''eig '''''underscore '''''value1''' | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Then type '''eig '''''underscore '''''value1''' |
You can see that, '''eig '''''underscore '''''value '''and''' eig '''''underscore '''''value1 '''are same. | You can see that, '''eig '''''underscore '''''value '''and''' eig '''''underscore '''''value1 '''are same. | ||
Line 575: | Line 559: | ||
* Use the '''function det()''' to find the '''determinant''' 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 '''inverse''' of a '''matrix''' using the '''function inv() ''' | ||
− | * Find out the ''' | + | * Find out the '''eigen vectors''' and '''eigen values''' of a '''matrix''', using the '''functions eig()''' and '''eigvals()''' |
|- | |- | ||
Line 599: | Line 583: | ||
# '''Matrix''' multiplication between A and B is done by, A ''asterisk'' B | # '''Matrix''' multiplication between A and B is done by, A ''asterisk'' B | ||
− | # False. '''eig '''''inside brackets '''''A''''' inside square brackets '''''0''' and '''eigvals '''''inside brackets '''''A''' are same, that is both will give the ''' | + | # False. '''eig '''''inside brackets '''''A''''' inside square brackets '''''0''' and '''eigvals '''''inside brackets '''''A''' are same, that is both will give the '''eigen values''' of '''matrix''' A. |
|- | |- |
Latest revision as of 18:26, 7 December 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
|
|
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
Pre-requisites
|
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. |