Baza wiedzy / Python
Jak działa numpy eye w języku Python? Przykład zastosowania

Gdy pracuję z biblioteką NumPy w języku Python, często muszę generować różne macierze i tablice numeryczne. Jedną z przydatnych funkcji, na którą warto zwrócić uwagę, jest numpy.eye(). To bardzo prosty, ale niezwykle użyteczny sposób na tworzenie macierzy jednostkowej. Jak działa numpy eye w języku Python? Prześledźmy to krok po kroku.
Co to jest numpy.eye()?
Funkcja numpy.eye() służy do generowania macierzy jednostkowej, czyli takiej, która ma jedynki na głównej przekątnej oraz zera w pozostałych komórkach. Jest to funkcja niezwykle przydatna w algebrze liniowej i operacjach macierzowych.
Podstawowa składnia numpy.eye()
Oto jak wygląda składnia tej funkcji:
numpy.eye(N, M=None, k=0, dtype=float, order='C')
Poszczególne argumenty oznaczają:
N– liczba wierszy macierzy.M– (opcjonalnie) liczba kolumn. Jeśli nie zostanie podana, macierz będzie kwadratowa (N x N).k– określa, na której przekątnej mają znajdować się jedynki. Domyślnie wartość to0(główna przekątna), ale można użyć wartości dodatnich i ujemnych.dtype– typ danych w macierzy (domyślniefloat).order– sposób rozmieszczania danych w pamięci ('C'dla C-contiguous,'F'dla Fortran-contiguous).
Praktyczne przykłady numpy.eye()
Aby lepiej zrozumieć jak działa numpy eye w języku Python, zobaczmy kilka przykładów.
Tworzenie macierzy jednostkowej 3x3
import numpy as np
I = np.eye(3)
print(I)
Wynik:
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
Macierz z różną liczbą wierszy i kolumn
Jeśli chcę utworzyć macierz 3x5, przekazuję dwa argumenty:
I = np.eye(3, 5)
print(I)
Rezultat:
[[1. 0. 0. 0. 0.]
[0. 1. 0. 0. 0.]
[0. 0. 1. 0. 0.]]
Przesunięcie przekątnej
Jeżeli chcę przesunąć przekątną o jedno miejsce do góry (k=1):
I = np.eye(4, 4, k=1)
print(I)
Wyjście:
[[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]
Zmiana typu danych
I = np.eye(4, dtype=int)
print(I)
Wynik:
[[1 0 0 0]
[0 1 0 0]
[0 0 1 0]
[0 0 0 1]]
Zastosowania numpy.eye()
Funkcja numpy.eye() znajduje zastosowanie w wielu dziedzinach:
- W algebrze liniowej – jako macierz tożsamościowa.
- W systemach równań liniowych – przy różnych przekształceniach macierzowych.
- W grafice komputerowej – przy transformacjach macierzowych.
- W analizie numerycznej – jako inicjalizacja macierzy w różnych algorytmach.
Porównanie numpy.eye() z numpy.identity()
W NumPy istnieje również funkcja numpy.identity(), która może wydawać się podobna. Oto porównanie:
| Funkcja | Opis | Obsługa macierzy niekwadratowych | Obsługa przesunięcia przekątnej |
|---|---|---|---|
numpy.eye() |
Tworzy macierz z jedynkami na przekątnej | Tak | Tak |
numpy.identity() |
Tworzy macierz jednostkową | Nie | Nie |
Podsumowując, jeśli potrzebuję macierzy tożsamościowej i chcę mieć możliwość zmiany liczby kolumn lub przesunięcia przekątnej, wybieram numpy.eye(). Jeśli wystarczy mi prosta macierz kwadratowa bez dodatkowych opcji, mogę użyć numpy.identity().
Podsumowanie
Funkcja numpy.eye() to świetny sposób na szybkie generowanie macierzy jednostkowych w Pythonie. Dzięki niej mogę łatwo manipulować przekątną, określać rozmiary i zmieniać typ danych w macierzy. To jedno z tych narzędzi, które wydają się proste, ale w praktyce okazują się niezwykle przydatne.
