logo

Python Matrix

I den här handledningen kommer vi att lära oss om Python-matriser. I Python liknar ett matrisobjekt kapslade listor eftersom de är flerdimensionella. Vi kommer att se hur man skapar en matris med hjälp av Numpy-matriser. Efter detta kommer vi att se olika matrisoperationsmetoder och exempel för bättre förståelse.

Vad är en matris i Python?

En matris i Python är en rektangulär Numpy-array. Denna matris måste vara tvådimensionell. Den innehåller data lagrad i arrayens rader och kolumner. I en Python-matris hänvisas till den horisontella serien av objekt som 'rader', medan den vertikala serien av objekt hänvisas till som 'kolumner'. Raderna och kolumnerna staplas över varandra precis som en kapslad lista. Om en matris innehåller r antal rader och c antal kolumner, där r och c är positiva heltal, så bestämmer r x c ordningen för detta matrisobjekt.

Vi kan lagra strängar, heltal och objekt av andra datatyper i en matris. Data lagras i staplarna av rader och kolumner i en matris. Matrisen är en avgörande datastruktur för beräkningar inom matematik och naturvetenskap. I Python betraktar vi en lista med listor eller en kapslad lista som en matris eftersom Python inte inkluderar någon inbyggd typ för ett matrisobjekt.

Under den här handledningen kommer vi att gå igenom följande lista över matrisoperationsmetoder.

  • Matristillägg
  • Matrismultiplikation
  • Matrix multiplikationsoperator
  • Matrismultiplikation utan Numpy
  • Matris invers
  • Matristransponera
  • Matris till array

Hur fungerar matriser i Python?

Vi skriver data i en tvådimensionell matris för att skapa en matris. Det görs på följande sätt:

Exempel

 [ 2 3 5 7 6 3 2 6 7 2 5 7 2 6 1 ] 

Den visar en matris med 3 rader och 5 kolumner, så dess dimension är 3×5. Heltalsdatatypobjekt utgör data i denna matris. Rad1, den första raden, har värden (2, 3, 5, 7, 6), medan Rad2 har värden (3, 2, 6, 7, 2) och Rad3 har värdena 5, 7, 2, 6, 1. Angående kolumner, Kolumn1 har värden (2, 3, 5), Kolumn2 har värden (3, 2, 7) och så vidare.

Exempel

uppgiftshanteraren linux
 [ 0, 0, 1 0, 1, 0 1, 0, 0 ] 

Den visar en matris med 3 rader och 3 kolumner, så dess dimension är 3×3. Sådana matriser som har lika rader och kolumner kallas kvadratmatriser.

På liknande sätt tillåter Python användare att lagra sina data i en m x n dimensionell matris. Vi kan utföra addition av matriser, multiplikation, transponering och andra operationer på en matrisliknande struktur.

Implementeringen av ett matrisobjekt i Python är inte okomplicerat. Vi kan skapa en Python-matris genom att använda arrayer och på liknande sätt använda dem.

NumPy Array

Den vetenskapliga datormjukvaran NumPy stöder ett robust N-dimensionellt arrayobjekt. Att installera NumPy är en förutsättning för att kunna använda det i vårt program.

NumPy kan användas och importeras efter installationen. Att känna till grunderna i Numpy Array kommer att vara till hjälp för att förstå matriser.

Matriser med flera dimensioner av objekt tillhandahålls av NumPy. Här är en illustration:

Koda

 # Python program to show how to create a Numpy array # Importing numpy import numpy as np # Creating a numpy array array = np.array([4, 6, 'Harry']) print(array) print('Data type of array object: ', type(array)) 

Produktion:

 ['4' '6' 'Harry'] Data type of array object: 

Som vi kan se tillhör Numpy-arrayer klassen ndarray.

Exempel för att skapa en matris med hjälp av Numpy Array

Tänk på scenariot där vi skapar ett register över elevernas betyg. Vi kommer att spela in elevens namn och betyg i två ämnen, Python-programmering och Matrix. Vi kommer att skapa en tvådimensionell matris med hjälp av en numpy array och sedan omforma den.

Koda

 # Python program to create a matrix using numpy array # Importing numpy import numpy as np # Creating the matrix record = np.array( [['Itika', 89, 91], ['Aditi', 96, 82], ['Harry', 91, 81], ['Andrew', 87, 91], ['Peter', 72, 79]]) matrix = np.reshape(record, (5,3)) print('The matrix is: 
', matrix) 

Produktion:

 The matrix is: [['Itika' '89' '91'] ['Aditi' '96' '82'] ['Harry' '91' '81'] ['Andrew' '87' '91'] ['Peter' '72' '79']] 

Exempel för att skapa en matris med hjälp av Numpy Matrix-metoden

Vi kan använda numpy.matrix för att skapa en 2D-matris.

java listor

Koda

 # Python program to show how to create a matrix using the matrix method # importing numpy import numpy as np # Creating a matrix matrix = np.matrix('3,4;5,6') print(matrix) 

Produktion:

 [[3 4] [5 6]] 

Få åtkomst till värden för en matris

Indexen för en matris kan användas för att komma åt de element som är lagrade i den. Data som lagras i en matris är tillgänglig med samma tillvägagångssätt som vi använder för en tvådimensionell array.

Koda

 # Python program to access elements of a matrix # Importing numpy import numpy as np # Creating the matrix record = np.array( [['Itika', 89, 91], ['Aditi', 96, 82], ['Harry', 91, 81], ['Andrew', 87, 91], ['Peter', 72, 79]]) matrix = np.reshape(record, (5,3)) # Accessing record of Itika print( matrix[0] ) # Accessing marks in the matrix subject of Andrew print( 'Andrew's marks in Matrix subject: ', matrix[3][2] ) 

Produktion:

 ['Itika' '89' '91'] Andrew's marks in Matrix subject: 91 

Metoder för att skapa en 2D Numpy Array eller en matris

Det finns flera metoder för att skapa en tvådimensionell NumPy-matris och därmed en matris. Tillhandahåller poster för rader och kolumner

Vi kan tillhandahålla heltal, flytande tal eller till och med komplexa tal. Med hjälp av dtype-attributet för arraymetoden kan vi ange vilken datatyp vi vill ha.

Koda

 # Python program to show how to create a Numpy array # Importing numpy import numpy as np # Creating numpy arrays array1 = np.array([[4, 2, 7, 3], [2, 8, 5, 2]]) print('Array of data type integers: 
', array1) array2 = np.array([[1.5, 2.2, 3.1], [3, 4.4, 2]], dtype = 'float') print('Array of data type float: 
', array2) array3 = np.array([[5, 3, 6], [2, 5, 7]], dtype = 'complex') print('Array of data type complex numbers: 
', array3) 

Produktion:

 Array of data type integers: [[4 2 7 3] [2 8 5 2]] Array of data type float: [[1.5 2.2 3.1] [3. 4.4 2. ]] Array of data type complex numbers: [[5.+0.j 3.+0.j 6.+0.j] [2.+0.j 5.+0.j 7.+0.j]] 

Array med nollor och ettor

Koda

 # Python program to show how to create a Numpy array having zeroes and ones # Importing numpy import numpy as np # Creating numpy arrays zeores_array = np.zeros( (3, 2) ) print(zeores_array) ones_array = np.ones( (2, 4), dtype=np.int64 ) print(ones_array) 

Produktion:

 [[0. 0.] [0. 0.] [0. 0.]] [[1 1 1 1] [1 1 1 1]] 

Här har vi specificerat dtype till 64 bitar.

Använda metoderna arange() och shape().

Koda

 # Python program to show how to create Numpy array using arrange() and shape() methods # Importing numpy import numpy as np # Creating numpy arrays array1 = np.arange( 5 ) print(array1) array2 = np.arange( 6 ).reshape( 2, 3 ) print(array2) 

Produktion:

fråga ett klick
 [0 1 2 3 4] [[0 1 2] [3 4 5]] 

Python Matrix Operations

Python Matrix Addition

Vi kommer att lägga till de två matriserna och använda den kapslade för-loopen genom de givna matriserna.

Koda

 # Python program to add two matrices without using numpy # Creating matrices in the form of nested lists matrix1 = [[23, 43, 12], [43, 13, 55], [23, 12, 13]] matrix2 = [[4, 2, -1], [5, 4, -34], [0, -4, 3]] matrix3 = [[0,1,0], [1,0,0], [0,0,1]] matrix4 = [[0,0,0], [0,0,0], [0,0,0]] matrices_length = len(matrix1) #Adding the three matrices using nested loops for row in range(len(matrix1)): for column in range(len(matrix2[0])): matrix4[row][column] = matrix1[row][column] + matrix2[row][column] + matrix3[row][column] #Printing the final matrix print('The sum of the matrices is = ', matrix4) 

Produktion:

 The sum of the matrices is = [[27, 46, 11], [49, 17, 21], [23, 8, 17]] 

Python Matrix Multiplikation

Python Matrix Multiplication Operator

I Python är @ känd som multiplikationsoperatorn. Låt oss se ett exempel där vi kommer att använda denna operator för att multiplicera två matriser.

Koda

 # Python program to show how to create a matrix using the matrix method. # importing numpy import numpy as np # Creating the matrices matrix1 = np.matrix('3,4;5,6') matrix2 = np.matrix('4,6;8,2') # Usng multiplication operator to multiply two matrices print(matrix1 @ matrix2) 

Produktion:

 [[44 26] [68 42]] 

Python Matrix Multiplication utan att använda Numpy

Ett annat sätt att multiplicera två matriser är att använda kapslade loopar. Här är ett exempel att visa.

Koda

 # Python program to show how to create a matrix using the matrix method # importing numpy import numpy as np # Creating two matrices matrix1 = [[4, 6, 2], [7, 4, 8], [6, 2, 7]] matrix2 = [[4, 6, 8, 2], [6, 5, 3, 7], [7, 3, 7, 6]] # Result will be a 3x4 matrix output = [[0,0,0,0], [0,0,0,0], [0,0,0,0]] # Iterating through the rows of matrix1 for i in range(len(matrix1)): # iterating through the columns of matrix2 for j in range(len(matrix2[0])): # iterating through the rows of matrix2 for k in range(len(matrix2)): output[i][j] += matrix1[i][k] * matrix2[k][j] for row in output: print(row) 

Produktion:

 [66, 60, 64, 62] [108, 86, 124, 90] [85, 67, 103, 68] 

Python Matrix Inverse

När en ekvation behöver lösas för att få värdet på en okänd variabel som uppfyller ekvationerna, beräknas inversen av en matris, som bara är den reciproka av matrisen som vi skulle göra i vanlig matematik. En matris invers är den matris som ger identitetsmatrisen när vi multiplicerar med den ursprungliga matrisen. Endast en icke-singular matris kan ha en invers. En icke-singular matris har en determinant som inte är noll.

Koda

 # Python program to show how to calculate the inverse of a matrix # Importing the required library import numpy as np # Creating a matrix A = np.matrix('3, 4, 6; 6, 2, 7; 6, 4, 6') # Calculating the inverse of A print(np.linalg.inv(A)) 

Produktion:

python rstrip
 [[-3.33333333e-01 -7.40148683e-17 3.33333333e-01] [ 1.25000000e-01 -3.75000000e-01 3.12500000e-01] [ 2.50000000e-01 2.50000000e-01 -3.75000000e-01]] 

Python Matrix Transpose

Python Matrix Transpose utan Numpy

Transponeringen av en matris innebär att raderna och kolumnerna byts. Den har symbolen X'. Vi kommer att placera objektet i rad i och kolumn j i matris X i rad j och kolumn i i matris X'. Följaktligen kommer X' att bli en 4x3-matris om den ursprungliga matrisen X är en 3x4-matris.

Koda

 # Python program to find the transpose of a matrix using nested loops # Creating a matrix matrix = [[4, 6, 7, 8], [3, 7, 2, 7], [7, 3, 7, 5]] result = [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] # iterating through the rows for i in range(len(matrix)): # iterating through the columns for j in range(len(matrix[0])): result[j][i] = matrix[i][j] for row in result: print(row) 

Produktion:

 [4, 3, 7] [6, 7, 3] [7, 2, 7] [8, 7, 5] 

Python Matrix Transponera med Numpy

Vi kan använda metoden matrix.transpose() i Numpy för att få matrisens transponering.

Koda

 # Python program to find the transpose of a matrix # importing the required module import numpy as np # Creating a matrix using matrix method matrix = np.matrix('[5, 7, 6; 4, 2, 4]') #finding transpose using matrix.transpose method transpose = matrix.transpose() print(transpose) 

Produktion:

 [[5 4] [7 2] [6 4]] 

Konvertera Python Matrix till Array

Vi kan använda ravel- och flatten-funktioner för att konvertera en Python-matris till en Python-array.

Koda

 # Python program to convert a matrix to an array # importing the required module import numpy as np # Creating a matrix using numpy matrix = np.matrix('[4, 6, 7; 5, 2, 6; 6, 3, 6]') # Using ravel() function to covert matrix to array array = matrix.ravel() print(array) # Using flatten() function to covert matrix to array array = np.asarray(matrix).flatten() print(array) # Using reshape() function to covert matrix to array array = (np.asarray(matrix)).reshape(-1) print(array) 

Produktion:

 [[4 6 7 5 2 6 6 3 6]] [4 6 7 5 2 6 6 3 6] [4 6 7 5 2 6 6 3 6]