np.eye() și np.identity() în NumPy

Crearea tablourilor NumPy 1.0+

Creează o matrice cu 1 pe diagonală și 0 în rest (matricea identitate).

Sintaxă
np.eye(N, M=None, k=0, dtype=float, order='C')
np.identity(n, dtype=None)

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.