Какво е Python Matrix?
Матрицата на Python е специализиран двуизмерен правоъгълен масив от данни, съхранявани в редове и колони. Данните в матрицата могат да бъдат числа, низове, изрази, символи и др. Матрицата е една от важните структури от данни, които могат да се използват при математически и научни изчисления.
В този урок за Python ще научите:
- Какво е Python Matrix?
- Как работят матриците на Python?
- Създайте Python Matrix, като използвате вложен тип данни от списъка
- За да четете данни в Python Matrix, като използвате списък.
- Пример 2: За да прочетете последния елемент от всеки ред.
- Пример 3: За да отпечатате редовете в Матрицата
- Добавяне на матрици с помощта на вложен списък
- Умножение на матрици с помощта на вложен списък
- Създайте Python Matrix с помощта на масиви от пакета Python Numpy
- Операция с матрица с помощта на Numpy.Array ()
- Достъп до NumPy Matrix
Как работят матриците на Python?
Данните вътре в двумерния масив в матричен формат изглеждат както следва:Етап 1)
Показва матрица 2x2. Той има два реда и 2 колони. Данните вътре в матрицата са числа. Редът1 има стойности 2,3, а ред2 има стойности 4,5. Колоните, т.е. col1, имат стойности 2,4, а col2 има стойности 3,5.
Стъпка 2)
Показва матрица 2x3. Той има два реда и три колони. Данните в първия ред, т.е. ред1, имат стойности 2,3,4, а ред 2 има стойности 5,6,7. Колоните col1 има стойности 2,5, col2 има стойности 3,6 и col3 има стойности 4,7.
По същия начин можете да съхранявате данните си в матрицата nxn в Python. Много операции могат да бъдат направени върху матрично подобно събиране, изваждане, умножение и т.н.
Python няма ясен начин да внедри матричен тип данни.
Матрицата на python използва масиви и същото може да бъде приложено.
- Създайте матрица на Python, като използвате типа данни за вложен списък
- Създайте Python Matrix с помощта на масиви от пакета Python Numpy
Създайте Python Matrix, като използвате вложен тип данни от списъка
В Python масивите са представени с помощта на типа данни от списъка. Така че сега ще използва списъка за създаване на матрица на python.
Ще създадем матрица 3x3, както е показано по-долу:
- Матрицата има 3 реда и 3 колони.
- Първият ред във формат на списък ще бъде както следва: [8,14, -6]
- Вторият ред в списък ще бъде: [12,7,4]
- Третият ред в списък ще бъде: [-11,3,21]
Матрицата в списък с всички редове и колони е както е показано по-долу:
List = [[Row1],[Row2],[Row3]… [RowN]]
Така че, съгласно изброената по-горе матрица, типът на списъка с матрични данни е както следва:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
За да четете данни в Python Matrix, като използвате списък.
Ще използваме дефинираната по-горе матрица. Примерът ще прочете данните, ще отпечата матрицата, ще покаже последния елемент от всеки ред.
Пример: За отпечатване на матрицата
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]#To print the matrixprint(M1)
Изход:
The Matrix M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
Пример 2: За да прочетете последния елемент от всеки ред.
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]matrix_length = len(M1)#To read the last element from each row.for i in range(matrix_length):print(M1[i][-1])
Изход:
-6421
Пример 3: За да отпечатате редовете в Матрицата
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]matrix_length = len(M1)#To print the rows in the Matrixfor i in range(matrix_length):print(M1[i])
Изход:
[8, 14, -6][12, 7, 4][-11, 3, 21]
Добавяне на матрици с помощта на вложен списък
Лесно можем да добавим две дадени матрици. Матриците тук ще бъдат във формата на списъка. Нека работим върху пример, който ще се погрижи да добави дадените матрици.
Матрица 1:
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]
Матрица 2:
M2 = [[3, 16, -6],[9,7,-4],[-1,3,13]]
Last ще инициализира матрица, която ще съхранява резултата от M1 + M2.
Матрица 3:
M3 = [[0,0,0],[0,0,0],[0,0,0]]
Пример: Добавяне на матрици
За да добавите, матриците ще използват for-loop, който ще премине през двете дадени матрици.
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]M2 = [[3, 16, -6],[9,7,-4],[-1,3,13]]M3 = [[0,0,0],[0,0,0],[0,0,0]]matrix_length = len(M1)#To Add M1 and M2 matricesfor i in range(len(M1)):for k in range(len(M2)):M3[i][k] = M1[i][k] + M2[i][k]#To Print the matrixprint("The sum of Matrix M1 and M2 = ", M3)
Изход:
The sum of Matrix M1 and M2 = [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]
Умножение на матрици с помощта на вложен списък
За да умножим матриците, можем да използваме for-loop и на двете матрици, както е показано в кода по-долу:
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]M2 = [[3, 16, -6],[9,7,-4],[-1,3,13]]M3 = [[0,0,0],[0,0,0],[0,0,0]]matrix_length = len(M1)#To Multiply M1 and M2 matricesfor i in range(len(M1)):for k in range(len(M2)):M3[i][k] = M1[i][k] * M2[i][k]#To Print the matrixprint("The multiplication of Matrix M1 and M2 = ", M3)
Изход:
The multiplication of Matrix M1 and M2 = [[24, 224, 36], [108, 49, -16], [11, 9, 273]]
Създайте Python Matrix с помощта на масиви от пакета Python Numpy
Python библиотеката Numpy помага за справяне с масиви. Numpy обработва масив малко по-бързо в сравнение със списъка.
За да работите с Numpy, първо трябва да го инсталирате. Следвайте стъпките, дадени по-долу, за да инсталирате Numpy.
Етап 1)
Командата за инсталиране на Numpy е:
pip install NumPy
Стъпка 2)
За да използвате Numpy във вашия код, трябва да го импортирате.
import NumPy
Стъпка 3)
Можете също да импортирате Numpy, като използвате псевдоним, както е показано по-долу:
import NumPy as np
Ще използваме метода array () от Numpy, за да създадем матрица на python.
Пример: Масив в Numpy за създаване на Python Matrix
import numpy as npM1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]])print(M1)
Изход:
[[ 5 -10 15][ 3 -6 9][ -4 8 12]]
Операция с матрица с помощта на Numpy.Array ()
Операцията с матрицата, която може да се направи, е събиране, изваждане, умножение, транспониране, четене на редове, колони на матрица, нарязване на матрицата и др. Във всички примери ще използваме метод array ().
Добавяне на матрица
За да извършим добавяне на матрицата, ще създадем две матрици с помощта на numpy.array () и ще ги добавим с помощта на оператора (+).
Пример:
import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]])M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]])M3 = M1 + M2print(M3)
Изход:
[[ 12 -12 36][ 16 12 48][ 6 -12 60]]
Матрично изваждане
За да извършим изваждане на матрицата, ще създадем две матрици с помощта на numpy.array () и ще ги извадим с помощта на оператора (-).
Пример:
import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]])M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]])M3 = M1 - M2print(M3)
Изход:
[[ -6 24 -18][ -6 -32 -18][-20 40 -18]]
Умножение на матрицата
Първо ще създаде две матрици с помощта на numpy.arary (). За да ги умножите, можете да използвате метода numpy dot (). Numpy.dot () е точковото произведение на матриците M1 и M2. Numpy.dot () обработва 2D масивите и извършва умножения на матрици.
Пример:
import numpy as npM1 = np.array([[3, 6], [5, -10]])M2 = np.array([[9, -18], [11, 22]])M3 = M1.dot(M2)print(M3)
Изход:
[[ 93 78][ -65 -310]]
Транспониране на матрицата
Транспонирането на матрица се изчислява чрез промяна на редовете като колони и колони като редове. Функцията транспониране () от Numpy може да се използва за изчисляване на транспонирането на матрица.
Пример:
import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]])M2 = M1.transpose()print(M2)
Изход:
[[ 3 5 4][ 6 -10 8][ 9 15 12]]
Нарязване на матрица
Нарязването ще ви върне елементите от матрицата въз основа на дадения начален / краен индекс.
- Синтаксисът за нарязване е - [начало: край]
- Ако началният индекс не е даден, той се счита за 0. Например [: 5], това означава като [0: 5].
- Ако краят не бъде предаден, това ще вземе като дължината на масива.
- Ако началото / краят има отрицателни стойности, нарязването ще се извърши от края на масива.
Преди да работим върху нарязване на матрица, нека първо разберем как да приложим нарязване върху обикновен масив.
import numpy as nparr = np.array([2,4,6,8,10,12,14,16])print(arr[3:6]) # will print the elements from 3 to 5print(arr[:5]) # will print the elements from 0 to 4print(arr[2:]) # will print the elements from 2 to length of the array.print(arr[-5:-1]) # will print from the end i.e. -5 to -2print(arr[:-1]) # will print from end i.e. 0 to -2
Изход:
[ 8 10 12][ 2 4 6 8 10][ 6 8 10 12 14 16][ 8 10 12 14][ 2 4 6 8 10 12 14]
Сега нека приложим нарязване на матрицата. За извършване на нарязване на матрица
синтаксисът ще бъде M1 [row_start: row_end, col_start: col_end]
- Първото начало / край ще бъде за реда, т.е. за избор на редовете на матрицата.
- Второто начало / край ще бъде за колоната, т.е. за избор на колоните от матрицата.
Матрицата M1, която ще използваме, е както следва:
M1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])
Има общо 4 реда. Индексът започва от 0 до 3. 0 -ият ред е [2,4,6,8,10], 1- ви ред е [3,6,9, -12, -15], последван от 2- ри и 3 -ти .
Матрицата M1 има 5 колони. Индексът започва от 0 до 4. 0 -тата колона има стойности [2,3,4,5], 1- ва колона има стойности [4,6,8, -10], последвана от 2- ра , 3 -та , 4 -та , и 5 -то .
Ето пример, показващ как да получите данните за редовете и колоните от матрицата с помощта на нарязване. В примера отпечатваме 1- ви и 2- ри ред, а за колони искаме първата, втората и третата колона. За да получим този изход, който използвахме: M1 [1: 3, 1: 4]
Пример:
import numpy as npM1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])print(M1[1:3, 1:4]) # For 1:3, it will give first and second row.#The columns will be taken from first to third.
Изход:
[[ 6 9 -12][ 8 12 16]]
Пример: За да отпечатате всички редове и трети колони
import numpy as npM1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])print(M1[:,3]) # This will print all rows and the third column data.
Изход:
[ 8 -12 16 -20]
Пример: За да отпечатате първия ред и всички колони
import numpy as npM1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])print(M1[:1,]) # This will print first row and all columns
Изход:
[[ 2 4 6 8 10]]
Пример: За да отпечатате първите три реда и първите 2 колони
import numpy as npM1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])print(M1[:3,:2])
Изход:
[[2 4][3 6][4 8]]
Достъп до NumPy Matrix
Видяхме как работи нарязването. Като вземем това предвид, ще разберем как да вземем редовете и колоните от матрицата.
За да отпечатате редовете на матрицата
В примера ще се отпечатат редовете на матрицата.
Пример:
import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]])print(M1[0]) #first rowprint(M1[1]) # the second rowprint(M1[-1]) # -1 will print the last row
Изход:
[3 6 9][ 5 -10 15][ 4 8 12]
За да получите последния ред, можете да използвате индекса или -1. Например матрицата има 3 реда,
така че M1 [0] ще ви даде първия ред,
M1 [1] ще ви даде втори ред
M1 [2] или M1 [-1] ще ви даде третия ред или последния ред.
За да отпечатате колоните на матрицата
import numpy as npM1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])print(M1[:,0]) # Will print the first Columnprint(M1[:,3]) # Will print the third Columnprint(M1[:,-1]) # -1 will give you the last column
Изход:
[2 3 4 5][ 8 -12 16 -20][ 10 -15 -20 25]
Резюме:
- Матрицата на Python е специализиран двуизмерен правоъгълен масив от данни, съхранявани в редове и колони. Данните в матрицата могат да бъдат числа, низове, изрази, символи и др. Матрицата е една от важните структури от данни, които могат да се използват при математически и научни изчисления.
- Python няма ясен начин да внедри матричен тип данни. Python матрицата може да бъде създадена с помощта на вложен тип данни от списъка и с помощта на библиотеката numpy.
- Python библиотеката Numpy помага за справяне с масиви. Numpy обработва масив малко по-бързо в сравнение със списъка.
- Операцията с матрицата, която може да се направи, е събиране, изваждане, умножение, транспониране, четене на редовете, колони на матрица, нарязване на матрицата и т.н.
- За да добавите две матрици, можете да използвате numpy.array () и да ги добавите с помощта на оператора (+).
- За да ги умножите, можете да използвате метода numpy dot (). Numpy.dot () е точковото произведение на матриците M1 и M2. Numpy.dot () обработва 2D масивите и извършва умножения на матрици.
- Транспонирането на матрица се изчислява чрез промяна на редовете като колони и колони като редове. Функцията транспониране () от Numpy може да се използва за изчисляване на транспонирането на матрица.
- Нарязването на матрица ще ви върне елементите въз основа на дадения начален / краен индекс.