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:

Python Matrix

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:

Stwórz Python Macierz wykorzystująca listę zagnieżdżoną

  • 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.

Codzienny biuletyn Guru99

Rozpocznij dzień od najnowszych i najważniejszych wiadomości na temat sztucznej inteligencji, dostarczanych już teraz.