Ce face np.eye() și np.identity()
np.identity(n) creează matricea identitate pătrată de n x n: 1 pe diagonala principală, 0 în rest. În algebra liniară, înmulțirea cu ea lasă o matrice neschimbată.
np.eye() face același lucru, dar este mai flexibilă: cu M poți crea o matrice dreptunghiulară, iar cu k muți diagonala de 1 deasupra (k pozitiv) sau dedesubt (k negativ).
Parametri
| Parametru | Descriere |
|---|---|
N / n |
Numărul de rânduri. |
M |
La eye: numărul de coloane. Implicit egal cu N. |
k |
La eye: diagonala pe care stau valorile 1. 0 este diagonala principală. |
dtype |
Tipul elementelor. Implicit float64. |
Ce returnează
Un tablou 2D cu 1 pe diagonala aleasă și 0 în rest.
Exemple
Exemplul 1: Matricea identitate
import numpy as np
print(np.identity(3))
print(np.eye(3, dtype=int))
Rezultat
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
[[1 0 0]
[0 1 0]
[0 0 1]]
Exemplul 2: Matrice dreptunghiulară și diagonală mutată
import numpy as np
print(np.eye(2, 4, dtype=int))
print(np.eye(4, k=1, dtype=int))
Rezultat
[[1 0 0 0]
[0 1 0 0]]
[[0 1 0 0]
[0 0 1 0]
[0 0 0 1]
[0 0 0 0]]
Exemplul 3: Înmulțirea cu identitatea
Operatorul @ face înmulțirea de matrice. Rezultatul este matricea de pornire.
import numpy as np
a = np.array([[2, 5],
[1, 3]])
print(a @ np.eye(2, dtype=int))
Rezultat
[[2 5]
[1 3]]
Greșeli frecvente
- Dai forma ca tuplu:
np.eye((3, 3))dă eroare. Rândurile și coloanele se dau separat:np.eye(3, 3). - Înmulțești cu
*și aștepți înmulțire de matrice.a * np.eye(2)înmulțește element cu element și păstrează doar diagonala; pentru produsul matriceal folosește@.
Comenzi înrudite
np.zeros() și np.ones(): Creează tablouri umplute cu 0 sau cu 1 (sau neinițializate cu np.empty), de forma dorită sau de forma altui tablou.np.full(): Creează un tablou de forma dorită, umplut peste tot cu aceeași valoare.np.matmul() și operatorul @: Înmulțirea de matrice cu np.matmul sau operatorul @; diferența față de *, care înmulțește element cu element.