logo

Python Matrix

I denne opplæringen vil vi lære om Python-matriser. I Python ligner et matriseobjekt på nestede lister ettersom de er flerdimensjonale. Vi vil se hvordan du lager en matrise ved hjelp av Numpy-matriser. Etter dette vil vi se ulike matriseoperasjonsmetoder og eksempler for bedre forståelse.

Hva er en matrise i Python?

En matrise i Python er en rektangulær Numpy-matrise. Denne matrisen må være todimensjonal. Den inneholder data lagret i arrayets rader og kolonner. I en Python-matrise blir den horisontale serien med elementer referert til som 'rader', mens den vertikale serien med elementer blir referert til som 'kolonner'. Radene og kolonnene er stablet over hverandre akkurat som en nestet liste. Hvis en matrise inneholder r antall rader og c antall kolonner, hvor r og c er positive heltall, så bestemmer r x c rekkefølgen til dette matriseobjektet.

Vi kan lagre strenger, heltall og objekter av andre datatyper i en matrise. Data lagres i stablene med rader og kolonner i en matrise. Matrisen er en avgjørende datastruktur for beregninger i matematikk og naturfag. I Python anser vi en liste med lister eller en nestet liste som en matrise siden Python ikke inkluderer noen innebygd type for et matriseobjekt.

I løpet av denne opplæringen vil vi gå gjennom følgende liste over matriseoperasjonsmetoder.

  • Matrisetillegg
  • Matrisemultiplikasjon
  • Matrisemultiplikasjonsoperator
  • Matrisemultiplikasjon uten Numpy
  • Matrise invers
  • Matrise transponere
  • Matrise til array

Hvordan fungerer matriser i Python?

Vi skriver data i en todimensjonal matrise for å lage en matrise. Det gjøres som følger:

Eksempel

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

Den viser en matrise med 3 rader og 5 kolonner, så dimensjonen er 3×5. Heltallsdatatypeobjekter utgjør dataene i denne matrisen. Rad1, den første raden, har verdier (2, 3, 5, 7, 6), mens Rad2 har verdier (3, 2, 6, 7, 2) og Rad3 har verdier 5, 7, 2, 6, 1. Mht. kolonner, Kolonne1 har verdier (2, 3, 5), Kolonne2 har verdier (3, 2, 7) og så videre.

Eksempel

 [ 0, 0, 1 0, 1, 0 1, 0, 0 ] 

Den viser en matrise med 3 rader og 3 kolonner, så dimensjonen er 3×3. Slike matriser som har like rader og kolonner kalles kvadratiske matriser.

Tilsvarende lar Python brukere lagre dataene sine innenfor en m x n dimensjonal matrise. Vi kan utføre addisjon av matriser, multiplikasjon, transposisjon og andre operasjoner på en matriselignende struktur.

Implementeringen av et matriseobjekt i Python er ikke enkelt. Vi kan lage en Python-matrise ved å bruke arrays og på samme måte bruke dem.

NumPy Array

Den vitenskapelige databehandlingsprogramvaren NumPy støtter et robust N-dimensjonalt array-objekt. Installasjon av NumPy er en forutsetning for å bruke den i programmet vårt.

NumPy kan brukes og importeres etter installasjon. Å kjenne det grunnleggende om Numpy Array vil være nyttig for å forstå matriser.

forskjellen mellom løve og tiger

Matriser med flere dimensjoner av elementer leveres av NumPy. Her er en illustrasjon:

Kode

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

Produksjon:

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

Som vi kan se, tilhører Numpy-matriser ndarray-klassen.

Eksempel for å lage en matrise ved hjelp av Numpy Array

Tenk på scenariet der vi lager en oversikt over elevenes karakterer. Vi vil registrere elevens navn og karakterer i to fag, Python-programmering og Matrix. Vi vil lage en todimensjonal matrise ved å bruke en numpy matrise og deretter omforme den.

Kode

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

Produksjon:

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

Eksempel for å lage en matrise ved hjelp av Numpy Matrix-metoden

Vi kan bruke numpy.matrix til å lage en 2D-matrise.

Kode

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

Produksjon:

 [[3 4] [5 6]] 

Få tilgang til verdiene til en matrise

Indeksene til en matrise kan brukes for å få tilgang til elementene som er lagret i den. Data lagret i en matrise er tilgjengelig ved å bruke samme tilnærming som vi bruker for en todimensjonal matrise.

Kode

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

Produksjon:

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

Metoder for å lage en 2D Numpy Array eller en matrise

Det er flere metoder for å lage en todimensjonal NumPy-matrise og dermed en matrise. Oppgi oppføringer for rader og kolonner

Vi kan gi heltall, flyter eller til og med komplekse tall. Ved å bruke dtype-attributtet til array-metoden kan vi spesifisere datatypen vi ønsker.

Kode

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

Produksjon:

 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 som har nuller og enere

Kode

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

Produksjon:

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

Her har vi spesifisert dtype til 64 biter.

Ved å bruke metodene arange() og shape().

Kode

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

Produksjon:

 [0 1 2 3 4] [[0 1 2] [3 4 5]] 

Python Matrix Operations

Python Matrix Addition

Vi vil legge til de to matrisene og bruke nestet for-løkke gjennom de gitte matrisene.

Kode

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

Produksjon:

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

Python Matrix Multiplikasjon

Python Matrix Multiplication Operator

I Python er @ kjent som multiplikasjonsoperatoren. La oss se et eksempel hvor vi skal bruke denne operatoren til å multiplisere to matriser.

Kode

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

Produksjon:

nettverksarkitektur
 [[44 26] [68 42]] 

Python Matrix Multiplication uten å bruke Numpy

En annen måte å multiplisere to matriser på er å bruke nestede løkker. Her er et eksempel å vise.

Kode

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

Produksjon:

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

Python Matrix Inverse

Når en ligning må løses for å få verdien av en ukjent variabel som tilfredsstiller ligningene, beregnes den inverse av en matrise, som bare er den resiproke av matrisen slik vi ville gjort i vanlig matematikk. En matrises invers er matrisen som gir identitetsmatrisen når vi multipliserer med den opprinnelige matrisen. Bare en ikke-singular matrise kan ha en invers. En ikke-singular matrise har en determinant som ikke er null.

Kode

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

Produksjon:

 [[-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 uten Numpy

En matrises transposisjon innebærer å bytte rader og kolonner. Den har symbolet X'. Vi vil sette objektet i rad i og kolonne j av matrise X i rad j og kolonne i av matrise X'. Følgelig vil X' bli en 4x3 matrise hvis den opprinnelige matrisen X er en 3x4 matrise.

Kode

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

Produksjon:

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

Python Matrix Transponer med Numpy

Vi kan bruke matrix.transpose()-metoden i Numpy for å få matrisens transponering.

Kode

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

Produksjon:

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

Konvertering av Python Matrix til Array

Vi kan bruke ravel- og flatten-funksjoner for å konvertere en Python-matrise til en Python-matrise.

Kode

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

Produksjon:

 [[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]