Macierz Pythona: transpozycja, mnożenie, przykłady tablic NumPy

Spisie treści:

Anonim

Co to jest Python Matrix?

Macierz Pythona to wyspecjalizowana dwuwymiarowa prostokątna tablica danych przechowywana w wierszach i kolumnach. Danymi w macierzy mogą być liczby, ciągi znaków, wyrażenia, symbole itp. Macierz jest jedną z ważnych struktur danych, których można używać w obliczeniach matematycznych i naukowych.

W tym samouczku Python dowiesz się:

  • Co to jest Python Matrix?
  • Jak działają macierze Pythona?
  • Utwórz macierz języka Python przy użyciu typu danych z zagnieżdżoną listą
  • Aby odczytać dane w Python Matrix przy użyciu listy.
  • Przykład 2: Aby przeczytać ostatni element z każdego wiersza.
  • Przykład 3: Aby wydrukować wiersze w macierzy
  • Dodawanie macierzy za pomocą listy zagnieżdżonej
  • Mnożenie macierzy za pomocą listy zagnieżdżonej
  • Utwórz macierz Pythona przy użyciu tablic z pakietu Python Numpy
  • Operacja na macierzy za pomocą Numpy.Array ()
  • Dostęp do NumPy Matrix

Jak działają macierze Pythona?

Dane wewnątrz dwuwymiarowej tablicy w formacie macierzowym wyglądają następująco:

Krok 1)

Pokazuje macierz 2x2. Ma dwa rzędy i 2 kolumny. Dane wewnątrz macierzy to liczby. Wiersz1 ma wartości 2,3, a wiersz2 ma wartości 4,5. Kolumny, tj. Col1, mają wartości 2,4, a col2 ma wartości 3,5.

Krok 2)

Pokazuje macierz 2x3. Ma dwa rzędy i trzy kolumny. Dane w pierwszym wierszu, tj. Wiersz1, mają wartości 2,3,4, a wiersz2 ma wartości 5,6,7. Kolumny col1 mają wartości 2,5, col2 - 3,6, a col3 - 4,7.

Podobnie możesz przechowywać dane w macierzy nxn w Pythonie. Wiele operacji można wykonać na podobnej do macierzy dodawaniu, odejmowaniu, mnożeniu itp.

Python nie ma prostego sposobu implementacji typu danych macierzowych.

Macierz Pythona korzysta z tablic i to samo można zaimplementować.

  • Utwórz macierz języka Python przy użyciu typu danych listy zagnieżdżonej
  • Utwórz macierz Pythona przy użyciu tablic z pakietu Python Numpy

Utwórz macierz języka Python przy użyciu typu danych z zagnieżdżoną listą

W Pythonie tablice są reprezentowane przy użyciu typu danych list. Więc teraz użyjemy listy do stworzenia macierzy Pythona.

Utworzymy macierz 3x3, 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 to: [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 jest pokazana poniżej:

List = [[Row1],[Row2],[Row3]… [RowN]]

Tak więc 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 w Python Matrix przy użyciu listy.

Skorzystamy 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 matrixprint(M1)

Wynik:

The Matrix M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]

Przykład 2: Aby przeczytać 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])

Wynik:

-6421

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 Matrixfor i in range(matrix_length):print(M1[i])

Wynik:

[8, 14, -6][12, 7, 4][-11, 3, 21]

Dodawanie macierzy za pomocą listy zagnieżdżonej

W prosty sposób możemy dodać dwie podane macierze. Macierze tutaj będą miały postać listy. Popracujmy nad przykładem, który zadba o dodanie podanych macierzy.

Macierz 1:

M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]

Macierz 2:

M2 = [[3, 16, -6],[9,7,-4],[-1,3,13]]

Last zainicjuje macierz, która będzie przechowywać wynik M1 + M2.

Macierz 3:

M3 = [[0,0,0],[0,0,0],[0,0,0]]

Przykład: dodawanie macierzy

Aby dodać, macierze wykorzystają pętlę 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 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)

Wynik:

The sum of Matrix M1 and M2 = [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]

Mnożenie macierzy za pomocą 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 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)

Wynik:

The multiplication of Matrix M1 and M2 = [[24, 224, 36], [108, 49, -16], [11, 9, 273]]

Utwórz macierz Pythona przy użyciu tablic z pakietu Python Numpy

Biblioteka Pythona Numpy pomaga radzić sobie z tablicami. Numpy przetwarza tablicę trochę szybciej w porównaniu z listą.

Aby pracować z Numpy, musisz go najpierw zainstalować. Postępuj zgodnie z instrukcjami podanymi poniżej, aby zainstalować Numpy.

Krok 1)

Polecenie do zainstalowania 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 za pomocą aliasu, jak pokazano poniżej:

import NumPy as np

Zamierzamy skorzystać z metody array () firmy Numpy, aby utworzyć macierz Pythona.

Przykład: Array w Numpy, aby utworzyć Python Matrix

import numpy as npM1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]])print(M1)

Wynik:

[[ 5 -10 15][ 3 -6 9][ -4 8 12]]

Operacja na macierzy za pomocą Numpy.Array ()

Operacje na macierzach, które można wykonać, to dodawanie, odejmowanie, mnożenie, transpozycja, odczytywanie wierszy, kolumn macierzy, wycinanie macierzy itp. We wszystkich przykładach będziemy używać metody array ().

Dodatek macierzy

Aby wykonać dodawanie do macierzy, utworzymy dwie macierze za pomocą numpy.array () i dodamy je za pomocą operatora (+).

Przykład:

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)

Wynik:

[[ 12 -12 36][ 16 12 48][ 6 -12 60]]

Odejmowanie macierzy

Aby wykonać odejmowanie macierzy, utworzymy dwie macierze za pomocą numpy.array () i odejmiemy je za pomocą operatora (-).

Przykład:

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)

Wynik:

[[ -6 24 -18][ -6 -32 -18][-20 40 -18]]

Mnożenie macierzy

Najpierw utworzy dwie macierze za pomocą numpy.arary (). Aby pomnożyć je, możesz użyć metody numpy dot (). Numpy.dot () jest iloczynem skalarnym macierzy M1 i M2. Numpy.dot () obsługuje tablice 2D i wykonuje mnożenie macierzy.

Przykład:

import numpy as npM1 = np.array([[3, 6], [5, -10]])M2 = np.array([[9, -18], [11, 22]])M3 = M1.dot(M2)print(M3)

Wynik:

[[ 93 78][ -65 -310]]

Matrix Transpozycja

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 npM1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]])M2 = M1.transpose()print(M2)

Wynik:

[[ 3 5 4][ 6 -10 8][ 9 15 12]]

Wycinanie macierzy

Cięcie na plasterki zwróci elementy z macierzy na podstawie podanego indeksu początkowego / końcowego.

  • Składnia podziału na fragmenty to - [początek: koniec]
  • Jeśli indeks początkowy nie jest podany, przyjmuje się, że wynosi 0. Na przykład [: 5], to znaczy jako [0: 5].
  • Jeśli koniec nie zostanie przekazany, będzie to długość tablicy.
  • Jeśli początek / koniec ma wartości ujemne, cięcie będzie wykonywane od końca tablicy.

Zanim zaczniemy pracować nad krojeniem na macierzy, najpierw zrozumiemy, jak zastosować plasterek na prostej tablicy.

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

Wynik:

[ 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 wycinanie na macierzy. Wykonywanie krojenia na macierzy

składnia będzie wyglądać następująco: M1 [row_start: row_end, col_start: col_end]

  • Pierwszy początek / koniec będzie dotyczył wiersza, czyli wybierania wierszy macierzy.
  • Drugi początek / koniec będzie dotyczył kolumny, czyli wyboru kolumn macierzy.

Macierz M1 t, której będziemy używać, jest następująca:

M1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])

Łącznie są 4 rzędy. Rozpoczyna indeksy od 0 do 3. 0 -go rzędu jest [2,4,6,8,10] 1 st rząd jest [3,6,9, 12, 15], a następnie 2 ND i 3 rd .

Macierz M1 ma 5 kolumn. Rozpoczyna indeksy od 0 do 4. 0 p kolumna wartości [2,3,4,5], 1 st słupy wartości [4,6,8 -10], a następnie 2 -go , 3 rd , 4 TH , i 5 th .

Oto przykład pokazujący, jak uzyskać dane wierszy i kolumn z macierzy za pomocą wycinania. W tym przykładzie mamy do drukowania 1 st i 2 nd wiersz, a na kolumnach, chcemy pierwszej, drugiej i trzeciej kolumnie. Aby uzyskać ten wynik, użyliśmy: M1 [1: 3, 1: 4]

Przykład:

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.

Wynik:

[[ 6 9 -12][ 8 12 16]]

Przykład: aby wydrukować wszystkie wiersze i trzecie kolumny

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.

Wynik:

[ 8 -12 16 -20]

Przykład: aby wydrukować pierwszy wiersz i wszystkie kolumny

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

Wynik:

[[ 2 4 6 8 10]]

Przykład: Aby wydrukować pierwsze trzy wiersze i pierwsze 2 kolumny

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

Wynik:

[[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 wydrukuje wiersze macierzy.

Przykład:

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

Wynik:

[3 6 9][ 5 -10 15][ 4 8 12]

Aby uzyskać ostatni wiersz, możesz użyć 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] da ci trzeci lub ostatni rząd.

Aby wydrukować kolumny macierzy

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

Wynik:

[2 3 4 5][ 8 -12 16 -20][ 10 -15 -20 25]

Podsumowanie:

  • Macierz Pythona to wyspecjalizowana dwuwymiarowa prostokątna tablica danych przechowywana w wierszach i kolumnach. Danymi w macierzy mogą być liczby, ciągi znaków, wyrażenia, symbole itp. Macierz jest jedną z ważnych struktur danych, których można używać w obliczeniach matematycznych i naukowych.
  • Python nie ma prostego sposobu implementacji typu danych macierzowych. Macierz Pythona można utworzyć przy użyciu typu danych z zagnieżdżoną listą i przy użyciu biblioteki numpy.
  • Biblioteka Pythona Numpy pomaga radzić sobie z tablicami. Numpy przetwarza tablicę trochę szybciej w porównaniu z listą.
  • Operacje na macierzach, które można wykonać, to dodawanie, odejmowanie, mnożenie, transpozycja, odczytywanie wierszy, kolumn macierzy, wycinanie macierzy itp.
  • Aby dodać dwie macierze, możesz skorzystać z numpy.array () i dodać je za pomocą operatora (+).
  • Aby pomnożyć je, 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żenie 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.
  • Cięcie macierzy zwróci elementy na podstawie podanego indeksu początkowego / końcowego.