Python Macierz: transpozycja, mnożenie, przykłady tablic NumPy
Co to jest Python Matryca?
A Python macierz to specjalistyczna dwuwymiarowa prostokątna tablica danych przechowywanych w wierszach i kolumnach. Dane w macierzy mogą być liczbami, ciągami znaków, wyrażeniami, symbolami itp. Macierz jest jedną z ważnych struktur danych, które można wykorzystać w obliczeniach matematycznych i naukowych.
Jak zrobić Python Matryce działają?
Dane wewnątrz dwuwymiarowej tablicy w formacie macierzowym wyglądają następująco:
Krok 1) Pokazuje macierz 2x2. Ma dwa wiersze i dwie kolumny. Dane wewnątrz macierzy to liczby. Wiersz 2 ma wartości 1, a wiersz 2,3 ma wartości 2. Kolumny, tj. col4,5, mają wartości 1, a col2,4 ma wartości 2.
Krok 2) Pokazuje macierz 2×3. Zawiera dwa wiersze i trzy kolumny. Dane w pierwszym wierszu, tj. wierszu 1, mają wartości 2,3,4, a wiersz 2 ma wartości 5,6,7. Kolumny col1 mają wartości 2,5, col2 ma wartości 3,6, a col3 ma wartości 4,7.
W podobny sposób możesz przechowywać swoje dane w macierzy nxn PythonNa macierzach można wykonywać wiele operacji, takich jak dodawanie, odejmowanie, mnożenie itd.
Python nie ma prostego sposobu implementacji typu danych macierzowych.
Macierz Pythona wykorzystuje tablice i to samo można zaimplementować.
- Stwórz Python Macierz wykorzystująca typ danych listy zagnieżdżonej
- Stwórz Python Macierz wykorzystująca tablice z Python Numiczny pakiet
Stwórz Python Macierz wykorzystująca typ danych listy zagnieżdżonej
In Python, tablice są reprezentowane przy użyciu typu danych listy. Teraz użyjemy listy, aby utworzyć macierz Pythona.
Stworzymy macierz 3×3, jak pokazano poniżej:
- Macierz ma 3 wiersze i 3 kolumny.
- Pierwszy wiersz w formacie listy będzie wyglądał następująco: [8,14,-6]
- Drugi wiersz na liście będzie wyglądał następująco: [12,7,4]
- Trzeci wiersz na liście będzie wyglądał następująco: [-11,3,21]
Macierz wewnątrz listy ze wszystkimi wierszami i kolumnami wygląda następująco:
List = [[Row1], [Row2], [Row3] ... [RowN]]
Zatem zgodnie z macierzą wymienioną powyżej typ listy z danymi macierzy jest następujący:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
Aby odczytać dane wewnątrz Python Macierz wykorzystująca listę.
Będziemy korzystać z macierzy zdefiniowanej powyżej. Przykład odczyta dane, wydrukuje macierz, wyświetli ostatni element z każdego wiersza.
Przykład: Aby wydrukować matrycę
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] #To print the matrix print(M1)
Wyjście:
The Matrix M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
Przykład 2: Aby odczytać ostatni element z każdego wiersza
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])
Wyjście:
-6 4 21
Przykład 3: Aby wydrukować wiersze w macierzy
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] matrix_length = len(M1) #To print the rows in the Matrix for i in range(matrix_length): print(M1[i])
Wyjście:
[8, 14, -6] [12, 7, 4] [-11, 3, 21]
Dodawanie macierzy przy użyciu listy zagnieżdżonej
Możemy łatwo dodać dwie dane macierze. Macierze tutaj będą miały formę listy. Popracujmy nad przykładem, który będzie uwzględniał dodanie podanych macierzy.
Macierz 1:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
Matryca 2:
M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]]
Last zainicjuje macierz, która będzie przechowywać wynik M1 + M2.
Matryca 3:
M3 = [[0,0,0], [0,0,0], [0,0,0]]
Przykład: Dodawanie macierzy
Aby dodać, macierze będą korzystać z pętli for, która będzie przechodzić przez obie podane macierze.
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 matrices for i in range(len(M1)): for k in range(len(M2)): M3[i][k] = M1[i][k] + M2[i][k] #To Print the matrix print("The sum of Matrix M1 and M2 = ", M3)
Wyjście:
The sum of Matrix M1 and M2 = [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]
Mnożenie macierzy przy użyciu listy zagnieżdżonej
Aby pomnożyć macierze, możemy użyć pętli for na obu macierzach, jak pokazano w poniższym kodzie:
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 matrices for i in range(len(M1)): for k in range(len(M2)): M3[i][k] = M1[i][k] * M2[i][k] #To Print the matrix print("The multiplication of Matrix M1 and M2 = ", M3)
Wyjście:
The multiplication of Matrix M1 and M2 = [[24, 224, 36], [108, 49, -16], [11, 9, 273]]
Stwórz Python Macierz wykorzystująca tablice z Python Numiczny pakiet
Biblioteka Pythona Numpy pomaga radzić sobie z tablicami. Numpy przetwarza tablicę nieco szybciej w porównaniu z listą.
Aby pracować z Numpy, musisz go najpierw zainstalować. Wykonaj kroki podane poniżej, aby zainstalować Numpy.
Krok 1) Polecenie instalacji Numpy to:
pip install NumPy
Krok 2) Aby skorzystać z Numpy w swoim kodzie, musisz go zaimportować.
import NumPy
Krok 3) Możesz także zaimportować Numpy przy użyciu aliasu, jak pokazano poniżej:
import NumPy as np
Zamierzamy skorzystać z metody array() z Numpy, aby utworzyć macierz Pythona.
Przykład: Tablica w Numpy do utworzenia Python Matrix
import numpy as np M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]]) print(M1)
Wyjście:
[[ 5 -10 15] [ 3 -6 9] [ -4 8 12]]
Matrix Operaza pomocą Numpy.Array()
Operacjami macierzowymi, które można wykonać, są dodawanie, odejmowanie, mnożenie, transpozycja, odczyt wierszy i kolumn macierzy, podział macierzy itd. We wszystkich przykładach będziemy korzystać z metody array().
Dodatek macierzy
Aby wykonać dodawanie macierzy, utworzymy dwie macierze za pomocą numpy.array() i dodamy je za pomocą operatora (+).
Przykład:
import numpy as np M1 = 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 + M2 print(M3)
Wyjście:
[[ 12 -12 36] [ 16 12 48] [ 6 -12 60]]
Odejmowanie macierzy
Aby wykonać odejmowanie na macierzy, utworzymy dwie macierze za pomocą numpy.array() i odejmiemy je za pomocą operatora (-).
Przykład:
import numpy as np M1 = 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 - M2 print(M3)
Wyjście:
[[ -6 24 -18] [ -6 -32 -18] [-20 40 -18]]
Mnożenie macierzy
Najpierw utworzy dwie macierze za pomocą numpy.arary(). Aby je pomnożyć, możesz skorzystać z metody numpy dot(). Numpy.dot() jest iloczynem skalarnym macierzy M1 i M2. Numpy.dot() obsługuje tablice 2D i wykonuje mnożenia macierzy.
Przykład:
import numpy as np M1 = np.array([[3, 6], [5, -10]]) M2 = np.array([[9, -18], [11, 22]]) M3 = M1.dot(M2) print(M3)
Wyjście:
[[ 93 78] [ -65 -310]]
Transpozycja macierzy
Transpozycja macierzy jest obliczana poprzez zmianę wierszy jako kolumn i kolumn jako wierszy. Funkcji transpose() z Numpy można użyć do obliczenia transpozycji macierzy.
Przykład:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]]) M2 = M1.transpose() print(M2)
Wyjście:
[[ 3 5 4] [ 6 -10 8] [ 9 15 12]]
Krojenie macierzy
Krojenie zwróci elementy z macierzy na podstawie podanego indeksu początkowego/końcowego.
- Składnia krojenia to – [start:end]
- Jeżeli nie podano indeksu początkowego, przyjmuje się, że wynosi on 0. Na przykład [:5] oznacza to [0:5].
- Jeśli koniec nie zostanie przekazany, przyjmie on długość tablicy.
- Jeśli początek/koniec ma wartości ujemne, wycinanie zostanie wykonane od końca tablicy.
Zanim zajmiemy się krojeniem macierzy, najpierw zrozumiemy, jak zastosować plasterek na prostej tablicy.
import numpy as np arr = np.array([2,4,6,8,10,12,14,16]) print(arr[3:6]) # will print the elements from 3 to 5 print(arr[:5]) # will print the elements from 0 to 4 print(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 -2 print(arr[:-1]) # will print from end i.e. 0 to -2
Wyjście:
[ 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]
Teraz zaimplementujmy krojenie na matrixie. Aby wykonać wycinanie na matrycy
składnia będzie następująca: M1[row_start:row_end, col_start:col_end]
- Pierwszym początkiem/końcem będzie wiersz, czyli wybranie wierszy macierzy.
- Drugi początek/koniec będzie dotyczył kolumny, czyli wybrania kolumn macierzy.
Macierz M1 t, z której będziemy korzystać, wygląda następująco:
M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]])
W sumie są 4 rzędy. Indeks zaczyna się od 0 do 3. 0th wiersz to [2,4,6,8,10], 1st rząd to [3,6,9,-12,-15], po którym następuje 2nd i 3rd.
Macierz M1 ma 5 kolumn. Indeks zaczyna się od 0 do 4. 0th kolumna ma wartości [2,3,4,5], 1st kolumny mają wartości [4,6,8,-10], po których następuje 2nd, 3rd, 4thi 5th.
Oto przykład pokazujący, jak uzyskać dane wierszy i kolumn z macierzy za pomocą wycinania. W tym przykładzie drukujemy 1st i 2nd wiersz, a w przypadku kolumn chcemy pierwszą, drugą i trzecią kolumnę. Aby uzyskać ten wynik, użyliśmy: M1[1:3, 1:4]
Przykład:
import numpy as np M1 = 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.
Wyjście:
[[ 6 9 -12] [ 8 12 16]]
Przykład: Aby wydrukować wszystkie wiersze i trzecie kolumny
import numpy as np M1 = 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.
Wyjście:
[ 8 -12 16 -20]
Przykład: Aby wydrukować pierwszy wiersz i wszystkie kolumny
import numpy as np M1 = 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
Wyjście:
[[ 2 4 6 8 10]]
Przykład: Aby wydrukować pierwsze trzy wiersze i pierwsze dwie kolumny
import numpy as np M1 = 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])
Wyjście:
[[2 4] [3 6] [4 8]]
Dostęp do NumPy Matrix
Widzieliśmy, jak działa krojenie. Biorąc to pod uwagę, dowiemy się, jak uzyskać wiersze i kolumny z macierzy.
Aby wydrukować wiersze macierzy
W przykładzie zostaną wydrukowane wiersze macierzy.
Przykład:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]]) print(M1[0]) #first row print(M1[1]) # the second row print(M1[-1]) # -1 will print the last row
Wyjście:
[3 6 9] [ 5 -10 15] [ 4 8 12]
Aby uzyskać ostatni wiersz, możesz skorzystać z indeksu lub -1. Na przykład macierz ma 3 wiersze,
więc M1[0] da ci pierwszy wiersz,
M1[1] da ci drugi rząd
M1[2] lub M1[-1] dadzą ci trzeci rząd lub ostatni rząd.
Aby wydrukować kolumny macierzy
import numpy as np M1 = 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 Column print(M1[:,3]) # Will print the third Column print(M1[:,-1]) # -1 will give you the last column
Wyjście:
[2 3 4 5] [ 8 -12 16 -20] [ 10 -15 -20 25]
Podsumowanie
- A Python macierz to specjalistyczna dwuwymiarowa prostokątna tablica danych przechowywanych w wierszach i kolumnach. Dane w macierzy mogą być liczbami, ciągami znaków, wyrażeniami, symbolami itp. Macierz jest jedną z ważnych struktur danych, które można wykorzystać w obliczeniach matematycznych i naukowych.
- Python nie ma prostego sposobu implementacji typu danych macierzowych. Python matrix można utworzyć przy użyciu typu danych listy zagnieżdżonej i biblioteki numpy.
- Biblioteka Pythona Numpy pomaga radzić sobie z tablicami. Numpy przetwarza tablicę nieco szybciej w porównaniu z listą.
- Operacjami macierzowymi, które można wykonać, są dodawanie, odejmowanie, mnożenie, transpozycja, odczytywanie wierszy i kolumn macierzy, dzielenie macierzy itp.
- Aby dodać dwie macierze, możesz skorzystać z numpy.array() i dodać je za pomocą operatora (+).
- Aby je pomnożyć, możesz skorzystać z metody numpy dot(). Numpy.dot() jest iloczynem skalarnym macierzy M1 i M2. Numpy.dot() obsługuje tablice 2D i wykonuje mnożenia macierzy.
- Transpozycję macierzy oblicza się poprzez zmianę wierszy na kolumny i kolumn na wiersze. Funkcji transpose() z Numpy można użyć do obliczenia transpozycji macierzy.
- Pocięcie macierzy zwróci elementy na podstawie podanego indeksu początkowego/końcowego.