Šioje pamokoje mes sužinosime apie Python matricas. Python matricos objektas yra panašus į įdėtus sąrašus, nes jie yra daugiamačiai. Pamatysime, kaip sukurti matricą naudojant Numpy masyvus. Po to pamatysime įvairius matricos operacijų metodus ir pavyzdžius, kad būtų geriau suprasti.
Kas yra Python matrica?
Python matrica yra stačiakampis Numpy masyvas. Šis masyvas turi būti dvimatis. Jame yra duomenys, saugomi masyvo eilutėse ir stulpeliuose. Python matricoje horizontalios elementų serijos vadinamos „eilėmis“, o vertikalios elementų serijos – „stulpeliais“. Eilutės ir stulpeliai yra sukrauti vienas ant kito kaip įdėtas sąrašas. Jei matricoje yra r eilučių skaičius ir c stulpelių skaičius, kur r ir c yra teigiami sveikieji skaičiai, tada r x c nustato šio matricos objekto tvarką.
Matricoje galime saugoti eilutes, sveikuosius skaičius ir kitų duomenų tipų objektus. Duomenys saugomi matricos eilučių ir stulpelių krūvose. Matrica yra esminė duomenų struktūra matematikos ir gamtos mokslų skaičiavimams. „Python“ sąrašų sąrašą arba įdėtą sąrašą laikome matrica, nes „Python“ neapima jokio integruoto matricos objekto tipo.
Šios pamokos metu peržiūrėsime šį matricos veikimo metodų sąrašą.
- Matricos papildymas
- Matricos daugyba
- Matricos daugybos operatorius
- Matricos daugyba be Numpy
- Matrica atvirkštinė
- Matricos perkėlimas
- Matrica į masyvą
Kaip Python matricos veikia?
Duomenis įrašome į dvimatį masyvą, kad sukurtume matricą. Tai daroma taip:
Pavyzdys
[ 2 3 5 7 6 3 2 6 7 2 5 7 2 6 1 ]
Rodoma matrica, turinti 3 eilutes ir 5 stulpelius, taigi jos matmenys yra 3×5. Šios matricos duomenis sudaro sveikųjų skaičių duomenų tipo objektai. 1 eilutėje, pirmoje eilutėje, yra reikšmės (2, 3, 5, 7, 6), o 2 eilutėje yra reikšmės (3, 2, 6, 7, 2), o 3 eilutėje yra 5, 7, 2, 6, 1. stulpeliai, 1 stulpelis turi reikšmes (2, 3, 5), 2 stulpelis turi reikšmes (3, 2, 7) ir pan.
Pavyzdys
[ 0, 0, 1 0, 1, 0 1, 0, 0 ]
Rodoma matrica, turinti 3 eilutes ir 3 stulpelius, todėl jos matmenys yra 3 × 3. Tokios matricos, turinčios lygias eilutes ir stulpelius, vadinamos kvadratinėmis.
Panašiai Python leidžia vartotojams saugoti savo duomenis m x n matmenų matricoje. Galime atlikti matricų pridėjimo, daugybos, transpozicijos ir kitas į matricą panašios struktūros operacijas.
Matricos objekto įgyvendinimas Python nėra paprastas. Mes galime sukurti Python matricą naudodami masyvus ir panašiai juos naudoti.
NumPy masyvas
Mokslinė skaičiavimo programinė įranga NumPy palaiko tvirtą N dimensijos masyvo objektą. NumPy įdiegimas yra būtina sąlyga norint jį naudoti mūsų programoje.
NumPy gali būti naudojamas ir importuojamas įdiegus. Numpy Array pagrindų žinojimas padės suprasti matricas.
Masyvus, turinčius kelis elementų matmenis, teikia „NumPy“. Štai iliustracija:
java konvertuoti sveikąjį skaičių į eilutę
Kodas
# 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))
Išvestis:
['4' '6' 'Harry'] Data type of array object:
Kaip matome, Numpy masyvai priklauso ndarray klasei.
Pavyzdys, kaip sukurti matricą naudojant Numpy Array
Pagalvokite apie scenarijų, kai kuriame mokinių pažymių įrašą. Mokinio vardą ir pažymius įrašysime dviejuose dalykuose Python programavimas ir Matrica. Sukursime dvimatę matricą naudodami numpy masyvą ir pakeisime jos formą.
Kodas
# 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)
Išvestis:
The matrix is: [['Itika' '89' '91'] ['Aditi' '96' '82'] ['Harry' '91' '81'] ['Andrew' '87' '91'] ['Peter' '72' '79']]
Pavyzdys, kaip sukurti matricą naudojant numpy matricos metodą
2D matricai sukurti galime naudoti numpy.matricą.
java iterate žemėlapis
Kodas
# 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)
Išvestis:
[[3 4] [5 6]]
Prieiga prie matricos verčių
Matricos indeksai gali būti naudojami norint pasiekti joje saugomus elementus. Duomenys, saugomi matricoje, pasiekiami naudojant tą patį metodą, kurį naudojame dvimačiai masyvai.
Kodas
# 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] )
Išvestis:
['Itika' '89' '91'] Andrew's marks in Matrix subject: 91
2-D numpy masyvo arba matricos kūrimo metodai
Yra keletas būdų, kaip sukurti dvimatį NumPy masyvą, taigi ir matricą. Eilučių ir stulpelių įrašų pateikimas
Galime pateikti sveikuosius skaičius, slankiuosius ar net kompleksinius skaičius. Naudodami masyvo metodo atributą dtype, galime nurodyti norimą duomenų tipą.
Kodas
# 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)
Išvestis:
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]]
Masyvas, turintis nulius ir vienetus
Kodas
# 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)
Išvestis:
[[0. 0.] [0. 0.] [0. 0.]] [[1 1 1 1] [1 1 1 1]]
Čia mes nurodėme dtype iki 64 bitų.
kuris išrado mokyklą
Naudojant arange() ir shape() metodus
Kodas
# 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)
Išvestis:
[0 1 2 3 4] [[0 1 2] [3 4 5]]
Python matricos operacijos
Python matricos papildymas
Sudėsime dvi matricas ir naudosime įdėtą kilpą per nurodytas matricas.
Kodas
# 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)
Išvestis:
The sum of the matrices is = [[27, 46, 11], [49, 17, 21], [23, 8, 17]]
Python matricos daugyba
Python matricos daugybos operatorius
Python @ yra žinomas kaip daugybos operatorius. Pažiūrėkime pavyzdį, kai naudosime šį operatorių, norėdami padauginti dvi matricas.
Kodas
# 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)
Išvestis:
[[44 26] [68 42]]
Python matricos daugyba nenaudojant Numpy
Kitas būdas padauginti dvi matricas yra įdėtųjų kilpų naudojimas. Čia yra pavyzdys, kurį reikia parodyti.
Kodas
# 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)
Išvestis:
[66, 60, 64, 62] [108, 86, 124, 90] [85, 67, 103, 68]
Python matrica atvirkštinė
Kai reikia išspręsti lygtį, kad būtų gauta nežinomo kintamojo, kuris tenkina lygtis, reikšmė, apskaičiuojama atvirkštinė matricos vertė, kuri yra tik matricos atvirkštinė vertė, kaip tai darytume įprastoje matematikoje. Matricos atvirkštinė yra matrica, kuri suteikia tapatybės matricą, kai padauginame iš pradinės matricos. Tik ne vienaskaita matrica gali turėti atvirkštinę. Ne vienaskaita matrica turi ne nulį determinantą.
ms word greitosios prieigos įrankių juosta
Kodas
# 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))
Išvestis:
[[-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 matricos perkėlimas
Python Matrix Transpose be Numpy
Matricos perkėlimas apima eilučių ir stulpelių perjungimą. Jis turi simbolį X'. Objektą patalpinsime į matricos X eilutę i, o stulpelį j – į X' matricos j eilutę ir i stulpelį. Vadinasi, X' taps 4x3 matrica, jei pradinė matrica X yra 3x4 matrica.
Kodas
# 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)
Išvestis:
[4, 3, 7] [6, 7, 3] [7, 2, 7] [8, 7, 5]
Python Matrix Transpose naudojant Numpy
Galime naudoti matricos.transpose() metodą Numpy, kad gautume matricos transponavimą.
Kodas
# 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)
Išvestis:
[[5 4] [7 2] [6 4]]
Python matricos konvertavimas į masyvą
Norėdami konvertuoti Python matricą į Python masyvą, galime naudoti ravel ir flatten funkcijas.
Kodas
# 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)
Išvestis:
[[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]