Šajā apmācībā mēs uzzināsim par Python matricām. Programmā Python matricas objekts ir līdzīgs ligzdotajiem sarakstiem, jo tiem ir daudzdimensiju. Mēs redzēsim, kā izveidot matricu, izmantojot Numpy masīvus. Pēc tam mēs redzēsim dažādas matricas operāciju metodes un piemērus labākai izpratnei.
Kas ir matrica Python?
Python matrica ir taisnstūrveida Numpy masīvs. Šim masīvam ir jābūt divdimensiju. Tas satur datus, kas saglabāti masīva rindās un kolonnās. Python matricā horizontālās vienumu sērijas tiek sauktas par 'rindām', savukārt vertikālās vienumu sērijas tiek sauktas par 'kolonnām'. Rindas un kolonnas ir sakrautas viena virs otras tāpat kā ligzdots saraksts. Ja matrica satur r rindu skaitu un c kolonnu skaitu, kur r un c ir pozitīvi veseli skaitļi, tad r x c nosaka šī matricas objekta secību.
Matricā varam saglabāt virknes, veselus skaitļus un citu datu tipu objektus. Dati tiek glabāti matricas rindu un kolonnu kaudzēs. Matrica ir būtiska datu struktūra aprēķiniem matemātikā un dabaszinātnēs. Programmā Python sarakstu saraksts vai ligzdots saraksts tiek uzskatīts par matricu, jo Python neietver matricas objekta iebūvētu tipu.
Šīs apmācības laikā mēs apskatīsim šādu matricas darbības metožu sarakstu.
- Matricas pievienošana
- Matricas reizināšana
- Matricas reizināšanas operators
- Matricas reizināšana bez Numpy
- Matricas inverss
- Matricas transponēšana
- Matrica uz masīvu
Kā Python matricas darbojas?
Mēs ierakstām datus divdimensiju masīvā, lai izveidotu matricu. Tas tiek darīts šādi:
Piemērs
[ 2 3 5 7 6 3 2 6 7 2 5 7 2 6 1 ]
Tas parāda matricu ar 3 rindām un 5 kolonnām, tāpēc tās izmērs ir 3 × 5. Vesela skaitļa datu tipa objekti veido datus šajā matricā. Rindai 1, pirmajai rindai, ir vērtības (2, 3, 5, 7, 6), savukārt 2. rindā ir vērtības (3, 2, 6, 7, 2) un 3. rindā ir vērtības 5, 7, 2, 6, 1. kolonnās, kolonnā 1 ir vērtības (2, 3, 5), kolonnā 2 ir vērtības (3, 2, 7) un tā tālāk.
Piemērs
[ 0, 0, 1 0, 1, 0 1, 0, 0 ]
Tas parāda matricu ar 3 rindām un 3 kolonnām, tāpēc tās izmērs ir 3 × 3. Šādas matricas ar vienādām rindām un kolonnām sauc par kvadrātveida matricām.
virknē java
Tāpat Python ļauj lietotājiem saglabāt savus datus m x n dimensijas matricā. Mēs varam veikt matricu pievienošanu, reizināšanu, transponēšanu un citas darbības ar matricai līdzīgu struktūru.
Matricas objekta ieviešana Python nav vienkārša. Mēs varam izveidot Python matricu, izmantojot masīvus, un līdzīgi tos izmantot.
NumPy masīvs
Zinātniskā skaitļošanas programmatūra NumPy atbalsta stabilu N-dimensiju masīva objektu. NumPy instalēšana ir priekšnoteikums, lai to izmantotu mūsu programmā.
masīvu saraksts
NumPy var izmantot un importēt pēc instalēšanas. Zinot Numpy Array pamatus, būs noderīgi izprast matricas.
Masīvus ar vairākām vienumu dimensijām nodrošina NumPy. Šeit ir ilustrācija:
Kods
# 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))
Izvade:
['4' '6' 'Harry'] Data type of array object:
Kā redzam, Numpy masīvi pieder ndarray klasei.
Matricas izveides piemērs, izmantojot Numpy Array
Padomājiet par scenāriju, kurā mēs izveidojam skolēnu atzīmju ierakstu. Studenta vārdu un atzīmes ierakstīsim divos priekšmetos Python programmēšana un Matrix. Mēs izveidosim divdimensiju matricu, izmantojot numpy masīvu, un pēc tam pārveidosim to.
Kods
# 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)
Izvade:
The matrix is: [['Itika' '89' '91'] ['Aditi' '96' '82'] ['Harry' '91' '81'] ['Andrew' '87' '91'] ['Peter' '72' '79']]
Matricas izveides piemērs, izmantojot Numpy Matrix metodi
Mēs varam izmantot numpy.matrix, lai izveidotu 2D matricu.
Kods
# 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)
Izvade:
[[3 4] [5 6]]
Piekļuve matricas vērtībām
Matricas indeksus var izmantot, lai piekļūtu tajā saglabātajiem elementiem. Matricā saglabātie dati ir pieejami, izmantojot to pašu pieeju, ko izmantojam divdimensiju masīvam.
java konstantes
Kods
# 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] )
Izvade:
['Itika' '89' '91'] Andrew's marks in Matrix subject: 91
Metodes, kā izveidot 2-D numpy masīvu vai matricu
Ir vairākas metodes, kā izveidot divdimensiju NumPy masīvu un līdz ar to arī matricu. Ierakstu nodrošināšana rindām un kolonnām
Mēs varam nodrošināt veselus skaitļus, pludiņus vai pat kompleksus skaitļus. Izmantojot masīva metodes atribūtu dtype, mēs varam norādīt vēlamo datu tipu.
Kods
# 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)
Izvade:
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]]
Masīvs ar nullēm un vieniniekiem
Kods
# 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)
Izvade:
[[0. 0.] [0. 0.] [0. 0.]] [[1 1 1 1] [1 1 1 1]]
Šeit mēs esam norādījuši dtype līdz 64 bitiem.
Izmantojot arange() un shape() metodes
Kods
# 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)
Izvade:
[0 1 2 3 4] [[0 1 2] [3 4 5]]
Python matricas operācijas
Python matricas pievienošana
Mēs pievienosim abas matricas un izmantosim ligzdoto cilpu caur dotajām matricām.
Kods
# 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)
Izvade:
int dubultot
The sum of the matrices is = [[27, 46, 11], [49, 17, 21], [23, 8, 17]]
Python matricas reizināšana
Python matricas reizināšanas operators
Python @ ir pazīstams kā reizināšanas operators. Apskatīsim piemēru, kur mēs izmantosim šo operatoru, lai reizinātu divas matricas.
Kods
# 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)
Izvade:
[[44 26] [68 42]]
Python matricas reizināšana, neizmantojot Numpy
Vēl viens veids, kā reizināt divas matricas, ir ligzdotu cilpu izmantošana. Šeit ir piemērs, ko parādīt.
Kods
# 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)
Izvade:
[66, 60, 64, 62] [108, 86, 124, 90] [85, 67, 103, 68]
Python Matrix Inverse
Kad vienādojums ir jāatrisina, lai iegūtu nezināma mainīgā vērtību, kas apmierina vienādojumus, tiek aprēķināta matricas apgrieztā vērtība, kas ir tikai matricas apgrieztā vērtība, kā mēs to darītu parastajā matemātikā. Matricas inversā ir matrica, kas dod identitātes matricu, kad mēs reizinām ar sākotnējo matricu. Tikai nevienskaitļa matricai var būt apgrieztā vērtība. Nevienskaitļa matricai ir determinants, kas nav nulle.
Kods
# 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))
Izvade:
[[-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 matricas transponēšana
Python Matrix Transpose bez Numpy
Matricas transponēšana ietver rindu un kolonnu maiņu. Tam ir simbols X'. Objektu ievietosim matricas X rindā i un kolonnu j matricas X' rindā j un kolonnā i. Līdz ar to X' kļūs par 4x3 matricu, ja sākotnējā matrica X ir 3x4 matrica.
Kods
# 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)
Izvade:
[4, 3, 7] [6, 7, 3] [7, 2, 7] [8, 7, 5]
Python matricas transponēšana, izmantojot Numpy
Mēs varam izmantot numpy metodi matrix.transpose(), lai iegūtu matricas transponēšanu.
kā java ievadīt virkni uz int
Kods
# 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)
Izvade:
[[5 4] [7 2] [6 4]]
Python matricas konvertēšana uz masīvu
Mēs varam izmantot ravel un flatten funkcijas, lai pārvērstu Python matricu Python masīvā.
Kods
# 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)
Izvade:
[[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]