logo

Python Matrix

Tässä opetusohjelmassa opimme Python-matriiseista. Pythonissa matriisiobjekti on samanlainen kuin sisäkkäiset luettelot, koska ne ovat moniulotteisia. Näemme kuinka luodaan matriisi Numpy-taulukoiden avulla. Tämän jälkeen näemme erilaisia ​​matriisioperaatiomenetelmiä ja esimerkkejä ymmärtämisen helpottamiseksi.

Mikä on matriisi Pythonissa?

Pythonin matriisi on suorakaiteen muotoinen Numpy-taulukko. Tämän taulukon on oltava kaksiulotteinen. Se sisältää taulukon riveihin ja sarakkeisiin tallennettuja tietoja. Python-matriisissa vaakasuuntaisia ​​kohteiden sarjoja kutsutaan 'riveiksi', kun taas pystysuoraa kohteiden sarjaa kutsutaan 'sarakkeiksi'. Rivit ja sarakkeet pinotaan päällekkäin aivan kuin sisäkkäinen luettelo. Jos matriisi sisältää r lukumäärän rivejä ja c sarakkeita, joissa r ja c ovat positiivisia kokonaislukuja, niin r x c määrittää tämän matriisiobjektin järjestyksen.

Voimme tallentaa matriisiin merkkijonoja, kokonaislukuja ja muun tietotyypin objekteja. Tiedot tallennetaan matriisin rivien ja sarakkeiden pinoihin. Matriisi on tärkeä tietorakenne matematiikan ja luonnontieteiden laskelmissa. Pythonissa pidämme luetteloa tai sisäkkäistä luetteloa matriisina, koska Python ei sisällä mitään sisäänrakennettua tyyppiä matriisiobjektille.

Tämän opetusohjelman aikana käymme läpi seuraavan luettelon matriisitoimintamenetelmistä.

  • Matriisin lisäys
  • Matriisin kertolasku
  • Matriisin kertolaskuoperaattori
  • Matriisin kertolasku ilman Numpya
  • Matriisi käänteinen
  • Matriisitransponointi
  • Matriisista taulukkoon

Kuinka Pythonin matriisit toimivat?

Kirjoitamme tiedot kaksiulotteiseen taulukkoon matriisin luomiseksi. Se tehdään seuraavasti:

Esimerkki

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

Se näyttää matriisin, jossa on 3 riviä ja 5 saraketta, joten sen koko on 3 × 5. Kokonaislukutietotyyppiset objektit muodostavat tämän matriisin tiedot. Ensimmäisellä rivillä 1 on arvot (2, 3, 5, 7, 6), kun taas rivillä 2 on arvot (3, 2, 6, 7, 2) ja rivillä 3 on arvot 5, 7, 2, 6, 1. sarakkeita, sarakkeessa 1 on arvot (2, 3, 5), sarakkeessa 2 on arvot (3, 2, 7) ja niin edelleen.

merkkijonon muuntaminen päivämääräksi

Esimerkki

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

Se näyttää matriisin, jossa on 3 riviä ja 3 saraketta, joten sen koko on 3 × 3. Tällaisia ​​matriiseja, joissa on yhtä suuret rivit ja sarakkeet, kutsutaan neliömatriiseiksi.

Samoin Python antaa käyttäjien tallentaa tietonsa m x n -ulotteiseen matriisiin. Voimme suorittaa matriisien yhteenlaskua, kertomista, transponointia ja muita operaatioita matriisin kaltaiselle rakenteelle.

Matriisiobjektin toteuttaminen Pythonissa ei ole yksinkertaista. Voimme luoda Python-matriisin käyttämällä taulukoita ja käyttää niitä samalla tavalla.

NumPy Array

Tieteellinen laskentaohjelmisto NumPy tukee vankkaa N-ulotteista taulukkoobjektia. NumPyn asentaminen on edellytys sen käyttämiselle ohjelmassamme.

java tietorakenteet

NumPy:ta voidaan käyttää ja tuoda asennuksen jälkeen. Numpy Arrayn perusteiden tunteminen auttaa ymmärtämään matriiseja.

NumPy tarjoaa taulukoita, joissa on useita kohteita. Tässä on esimerkki:

Koodi

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

Lähtö:

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

Kuten näemme, Numpy-taulukot kuuluvat ndarray-luokkaan.

Esimerkki matriisin luomisesta Numpy Arraylla

Ajattele tilannetta, jossa luomme tietueen oppilaiden arvosanoista. Tallennamme opiskelijan nimen ja arvosanat kahdessa oppiaineessa, Python-ohjelmointi ja Matrix. Luomme kaksiulotteisen matriisin numpy-taulukon avulla ja muotoilemme sen sitten uudelleen.

Koodi

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

Lähtö:

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

Esimerkki matriisin luomisesta Numpy Matrix -menetelmällä

Voimme käyttää numpy.matriisia 2D-matriisin luomiseen.

Koodi

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

Lähtö:

 [[3 4] [5 6]] 

Matriisin arvojen käyttäminen

Matriisin indekseillä voidaan päästä käsiksi siihen tallennettuihin elementteihin. Matriisiin tallennettu tieto on käytettävissä käyttämällä samaa lähestymistapaa, jota käytämme kaksiulotteisessa taulukossa.

java catch -yritys

Koodi

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

Lähtö:

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

Menetelmät kaksiulotteisen numpy-taulukon tai matriisin luomiseksi

Kaksiulotteisen NumPy-taulukon ja siten matriisin luomiseen on useita menetelmiä. Rivien ja sarakkeiden syötteiden antaminen

Voimme tarjota kokonaislukuja, liukulukuja tai jopa kompleksilukuja. Ary-menetelmän dtype-attribuutin avulla voimme määrittää haluamamme tietotyypin.

Koodi

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

Lähtö:

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

Taulukko, jossa on nollia ja ykkösiä

Koodi

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

Lähtö:

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

Tässä olemme määrittäneet dtypen 64-bittiseksi.

Arange()- ja shape()-menetelmien käyttäminen

Koodi

lisää vesileima sanaan
 # 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) 

Lähtö:

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

Python Matrix Operations

Python-matriisilisäys

Lisäämme kaksi matriisia ja käytämme sisäkkäistä silmukkaa annettujen matriisien läpi.

Koodi

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

Lähtö:

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

Python-matriisikertominen

Python-matriisin kertolaskuoperaattori

Pythonissa @ tunnetaan kertolaskuoperaattorina. Katsotaanpa esimerkkiä, jossa käytämme tätä operaattoria kahden matriisin kertomiseen.

Koodi

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

Lähtö:

 [[44 26] [68 42]] 

Python Matrix Kertominen ilman Numpya

Toinen tapa kertoa kaksi matriisia on käyttää sisäkkäisiä silmukoita. Tässä on esimerkki näytettäväksi.

Koodi

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

Lähtö:

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

Python Matrix Inverse

Kun yhtälö täytyy ratkaista tuntemattoman muuttujan arvon saamiseksi, joka täyttää yhtälöt, lasketaan matriisin käänteisluku, joka on vain matriisin käänteisluku, kuten tavallisessa matematiikassa. Matriisin käänteisluku on matriisi, joka antaa identiteettimatriisin, kun kerromme alkuperäisen matriisin kanssa. Vain ei-singulaarisella matriisilla voi olla käänteisarvo. Ei-singulaarisella matriisilla on nollasta poikkeava determinantti.

Koodi

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

Lähtö:

 [[-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-matriisin transponointi

Python Matrix Transpose ilman Numpya

Matriisin transponointi sisältää rivien ja sarakkeiden vaihtamisen. Siinä on symboli X'. Laitamme kohteen matriisin X riville i ja sarakkeen j matriisin X' riville j ja sarakkeelle i. Näin ollen X':stä tulee 4x3-matriisi, jos alkuperäinen matriisi X on 3x4-matriisi.

Koodi

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

Lähtö:

python tuple lajiteltu
 [4, 3, 7] [6, 7, 3] [7, 2, 7] [8, 7, 5] 

Python Matrix Transpone Numpylla

Voimme käyttää Numpyssa menetelmää matrix.transpose() saadakseen matriisin transponoinnin.

Koodi

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

Lähtö:

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

Python Matrixin muuntaminen Arrayksi

Voimme käyttää ravel- ja flatten-funktioita Python-matriisin muuttamiseksi Python-taulukoksi.

Koodi

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

Lähtö:

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