Difference between revisions of "Python-3.4.3/C3/Basic-Matrix-Operations/English"
Nancyvarkey (Talk | contribs) |
|||
Line 23: | Line 23: | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| In this tutorial, you will learn to, | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| In this tutorial, you will learn to, | ||
− | * Create '''matrices''' from lists | + | * Create '''matrices''' from '''lists''' |
− | * Perform basic '''matrix''' | + | * Perform basic '''matrix operations''' like |
** addition | ** addition | ||
** subtraction and | ** subtraction and | ||
** multiplication | ** multiplication | ||
− | * Perform operations to find out | + | * Perform '''operations''' to find out |
− | + | ** '''determinant''' of a '''matrix''' | |
− | * '''determinant''' of a '''matrix''' | + | ** '''inverse''' of a '''matrix''' |
− | * '''inverse''' of a '''matrix''' | + | ** '''eigenvalues''' and '''eigenvectors''' of a '''matrix ''' |
− | * '''eigenvalues''' and '''eigenvectors''' of a '''matrix ''' | + | |
− | + | ||
− | + | ||
|- | |- | ||
Line 45: | Line 42: | ||
* '''Python 3.4.3''' | * '''Python 3.4.3''' | ||
* '''IPython 5.1.0''' | * '''IPython 5.1.0''' | ||
− | |||
− | |||
|- | |- | ||
Line 65: | Line 60: | ||
|- | |- | ||
| 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;"| 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;"| Slide: | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| * In | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| |
− | * Matrix operations can be done using '''numpy''' | + | * In '''Python''', we create a '''matrix''' using '''numpy matrix class.''' |
− | + | * '''Matrix operations''' can be done using '''numpy operators''' and '''functions'''. | |
− | + | ||
|- | |- | ||
Line 84: | Line 78: | ||
Press''' Enter''' | Press''' Enter''' | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Type '''ipython3 '''and press Enter. | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Type '''ipython3 '''and press '''Enter'''. |
− | From here onwards remember to press the '''Enter''' key after typing every command on the terminal. | + | From here onwards, remember to press the '''Enter''' key after typing every '''command''' on the '''terminal'''. |
|- | |- | ||
Line 100: | Line 94: | ||
Point to the output | Point to 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;"| Let us create a | + | | 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.''' |
− | Type | + | Type '''from numpy import matrix''' |
− | + | ||
− | '''from numpy import matrix''' | + | |
Line 113: | Line 105: | ||
− | Now type | + | Now type '''m1''' |
− | + | ||
− | '''m1''' | + | |
− | This creates a matrix with one row and four columns. | + | This creates a '''matrix''' with one row and four columns. |
|- | |- | ||
Line 127: | Line 117: | ||
Highlight the output | 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;"| This can be verified by typing | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| This can be verified by typing '''m1.shape''' |
− | + | ||
− | '''m1.shape''' | + | |
Line 145: | Line 133: | ||
Highlight the output | 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;"| 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 151: | Line 139: | ||
− | You can see the | + | 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;"| Slide:'''asmatrix''' | | 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;"| Slide:'''asmatrix''' | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| * To convert an array to a matrix, use the '''asmatrix''' | + | | 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 use '''arange '''and '''reshape methods '''to generate an array. | + | * 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'''. | |
− | + | ||
|- | |- | ||
Line 174: | Line 161: | ||
− | '''arange''' is a method available in''' numpy.''' | + | '''arange''' is a '''method''' available in''' numpy.''' |
− | Here it returns an array of evenly spaced values between '''1 '''and''' 9.''' | + | 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. | + | '''reshape''' is used to change the shape of the '''array''' to 2 rows and 4 columns. |
− | '''asmatrix '''is a | + | '''asmatrix '''is a '''method''' available in '''numpy '''and it interprets the input as a '''matrix'''. |
|- | |- | ||
Line 196: | Line 183: | ||
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''' '''m3 '''of '''shape''' 2 by 4 with the elements 5, 6, 7, 8, 9, 10, 11, 12. | + | | 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 203: | Line 190: | ||
|- | |- | ||
| 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;"| Switch to the terminal | | 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;"| Switch to the terminal | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Switch back to the terminal for the solution. | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Switch back to the '''terminal''' for the solution. |
|- | |- | ||
Line 225: | Line 212: | ||
'''m3 + m2''' | '''m3 + m2''' | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Next let us see some '''matrix''' | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Next let us see some '''matrix operations'''. |
Line 231: | Line 218: | ||
− | It performs element by element addition, that is '''matrix''' addition. | + | It performs '''element''' by '''element''' addition, that is '''matrix''' addition. |
Line 243: | Line 230: | ||
− | It performs '''matrix''' subtraction, that is element by element subtraction. | + | It performs '''matrix''' subtraction, that is '''element''' by '''element''' subtraction. |
Line 252: | Line 239: | ||
'''6.5 * m2''' | '''6.5 * m2''' | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Now we can multiply a scalar i.e a number by a matrix as shown. | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Now we can multiply a '''scalar''' i.e a number by a '''matrix''' as shown. |
|- | |- | ||
Line 284: | Line 271: | ||
'''m4.shape''' | '''m4.shape''' | ||
− | | 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 check the shape, type | + | | 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 check the shape, type '''m4.shape''' |
− | + | ||
− | '''m4.shape''' | + | |
Line 297: | Line 282: | ||
Highlight the output | 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;"| The''' | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| The multiplication '''operator ''asterisk '''''is used for '''matrix''' multiplication. |
− | Type | + | Type '''m2 '''''asterisk''''' m4''' |
− | + | ||
− | '''m2 '''''asterisk''''' m4''' | + | |
Line 317: | Line 300: | ||
− | To see the content of m4, type | + | To see the content of '''m4''', type '''print''''' inside brackets '''''m4''' |
− | + | ||
− | '''print''''' inside brackets '''''m4''' | + | |
|- | |- | ||
Line 337: | 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 | + | | 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'''. |
|- | |- | ||
Line 352: | Line 333: | ||
|- | |- | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Switch to the terminal for solution. | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Switch to the terminal for solution. | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Switch to the terminal for the solution. | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Switch to the '''terminal''' for the solution. |
|- | |- | ||
Line 370: | Line 351: | ||
− | We get determinant of '''m5''' as output. | + | We get '''determinant''' of '''m5''' as output. |
|- | |- | ||
Line 376: | 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 | + | | 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'''. |
|- | |- | ||
Line 395: | Line 376: | ||
− | Then to see the the inverse, type | + | Then to see the the '''inverse''', type |
'''im5''' | '''im5''' | ||
Line 414: | Line 395: | ||
Highlight '''allclose''' | Highlight '''allclose''' | ||
− | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Type '''from numpy import eye,allclose''' | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Type | + | |
− | + | ||
− | '''from numpy import eye,allclose''' | + | |
Line 432: | Line 406: | ||
− | We know that multiplication of a matrix with its inverse gives the '''identity matrix'''. | + | We know that multiplication of a '''matrix''' with its '''inverse''' gives the '''identity matrix'''. |
− | '''Identity matrix''' is created using '''eye()''' | + | '''Identity matrix''' is created using '''eye() function'''. It is present in the '''numpy module'''. |
− | Here '''asmatrix '''''inside brackets '''''eye '''''inside brackets '''''3''' gives | + | 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. | + | '''allclose '''is a '''function''' that returns '''True''' if two '''arrays''' are '''element'''-wise equal. |
+ | |- | ||
+ | | 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, | ||
− | + | '''eye?''' | |
+ | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| To know more about these, we will check the documentation. | ||
− | |||
+ | Type the '''function''' name followed by a question mark in '''IPython console.''' | ||
− | |||
− | '''eye''''' question mark'' | + | Type '''eye''''' question mark'' |
Line 458: | Line 434: | ||
− | It is a good practice to read documentation of new functions that you come across. | + | It is a good practice to read documentation of new '''functions''' that you come across. |
|- | |- | ||
Line 467: | Line 443: | ||
− | | 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 '''eigenvectors''' and '''eigenvalues''' | + | | 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 '''eigenvectors''' and '''eigenvalues.''' |
Line 476: | Line 452: | ||
* '''eigvals '''''inside brackets '''''A '''gives its '''eigenvalues''' | * '''eigvals '''''inside brackets '''''A '''gives its '''eigenvalues''' | ||
− | '''eig''' and '''eigvals''' | + | '''eig''' and '''eigvals functions''' are present in '''numpy.linalg module'''. |
|- | |- | ||
Line 509: | Line 485: | ||
Put box to matrix | 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;"| Let us find out the '''eigenvalues''' and '''eigenvectors''' of the '''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 find out the '''eigenvalues''' and '''eigenvectors''' of the '''matrix m6'''. |
Line 518: | 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 . |
− | '''diag() function '''is present in''' numpy ''' | + | '''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'''. |
− | The first element in the tuple is an array of three eigenvalues. | + | The first '''element''' in the '''tuple''' is an '''array''' of three '''eigenvalues'''. |
− | The second element in the tuple is a matrix of three eigenvectors. | + | The second '''element''' in the '''tuple''' is a '''matrix''' of three '''eigenvectors'''. |
|- | |- | ||
Line 541: | Line 517: | ||
− | Then type | + | Then type '''eig '''''underscore '''''value''' |
− | + | ||
− | '''eig '''''underscore '''''value''' | + | |
Line 557: | Line 531: | ||
− | Then type | + | Then type '''eig '''''underscore '''''vector''' |
− | + | ||
− | '''eig '''''underscore '''''vector''' | + | |
− | '''eig '''''underscore '''''vector '''contains eigenvector. | + | '''eig '''''underscore '''''vector '''contains '''eigenvector'''. |
|- | |- | ||
Line 572: | Line 544: | ||
− | Then type | + | Then type '''eig_value1''' |
− | |||
− | + | Show both the outputs. | |
− | Show both the outputs | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| The '''eigenvalues''' can also be computed using '''eigvals() function'''. |
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| The '''eigenvalues''' can also be computed using '''eigvals() ''' | + | |
Line 584: | Line 554: | ||
− | Then type | + | Then type '''eig '''''underscore '''''value1''' |
− | + | ||
− | '''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 603: | Line 571: | ||
* Create '''matrices''' using '''arrays''' | * Create '''matrices''' using '''arrays''' | ||
− | * Add, subtract and multiply matrices | + | * Add, subtract and multiply '''matrices''' |
− | * Take scalar multiple of a | + | * Take '''scalar''' multiple of a '''matrix''' |
− | + | * Use the '''function det()''' to find the '''determinant''' of a '''matrix''' | |
− | * Find out the '''inverse''' 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 | + | * Find out the '''eigenvectors''' and '''eigenvalues''' of a '''matrix''', using the '''functions eig()''' and '''eigvals()''' |
− | + | ||
− | + | ||
|- | |- | ||
Line 620: | Line 586: | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Here are some self assessment questions for you to solve | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Here are some self assessment questions for you to solve | ||
− | # A and B are two matrix objects of appropriate sizes. Which one of the below is correct for | + | # A and B are two '''matrix objects''' of appropriate sizes. Which one of the below is correct for '''matrix''' multiplication? |
− | # '''eig '''''inside brackets '''''A''''' inside square brackets '''''1''' and '''eigvals '''''inside brackets '''''A''' are the same. True or False | + | # '''eig '''''inside brackets '''''A''''' inside square brackets '''''1''' and '''eigvals '''''inside brackets '''''A''' are the same. True or False? |
− | + | ||
− | + | ||
|- | |- | ||
Line 634: | Line 598: | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| And the answers, | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| And the answers, | ||
− | # 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 '''eigenvalues''' of '''matrix''' A. | # 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. | ||
− | |||
− | |||
|- | |- |
Revision as of 20:25, 18 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
|
|
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,
m1 = matrix([1,2,3,4]) m1 Point to the output |
Let us create a matrix m1.
m1 is equal to matrix inside brackets inside square brackets 1 comma 2 comma 3 comma 4
|
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,
|
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 | The determinant of a square matrix is obtained 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 |
The inverse of a square matrix can be obtained 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.
im5 |
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
eigenvectors and eigenvalues
|
Let us now move onto eigenvectors and 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)))
eig(m6)
(array([1., 2., 3.]), matrix([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]))
|
Let us find out the eigenvalues and eigenvectors of the matrix m6.
|
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
|
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
|
Type,
from numpy.linalg import eigvals eig_value1 = eigvals(m6)
|
The eigenvalues can also be computed using eigvals() function.
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. |