Ce face np.zeros() și np.ones()
np.zeros() și np.ones() creează un tablou nou de forma dată, plin cu 0, respectiv cu 1. Forma este un număr (pentru 1D) sau un tuplu, de exemplu (2, 3) pentru 2 rânduri și 3 coloane. Tipul implicit este float64.
np.zeros_like(a) și np.ones_like(a) creează un tablou cu aceeași formă și același tip ca tabloul a. Sunt utile când vrei un tablou „pereche” pentru rezultate.
np.empty() doar rezervă memoria, fără să scrie nimic în ea. Valorile de la început sunt nedefinite (orice se afla în memorie), așa că folosește-l doar dacă urmează să completezi toate elementele.
Parametri
| Parametru | Descriere |
|---|---|
shape |
Forma: un întreg (5) sau un tuplu ((2, 3)). |
dtype |
Tipul elementelor. Implicit float64 pentru zeros/ones/empty; la variantele _like, tipul lui a. |
a |
La zeros_like/ones_like: tabloul de la care se iau forma și tipul. |
order |
Ordinea în memorie: 'C' (pe rânduri, implicit) sau 'F' (pe coloane). |
Ce returnează
Un tablou nou de forma cerută.
Exemple
Exemplul 1: Zerouri și unu
import numpy as np
print(np.zeros(4))
print(np.ones((2, 3)))
print(np.zeros((2, 2), dtype=int))
Rezultat
[0. 0. 0. 0.]
[[1. 1. 1.]
[1. 1. 1.]]
[[0 0]
[0 0]]
Exemplul 2: zeros_like și ones_like
Rezultatul are forma și tipul (aici int64) tabloului de pornire.
import numpy as np
vanzari = np.array([[120, 95, 130],
[80, 110, 105]])
bonus = np.zeros_like(vanzari)
prezenta = np.ones_like(vanzari)
print(bonus)
print(prezenta)
print(bonus.dtype, bonus.shape)
Rezultat
[[0 0 0]
[0 0 0]]
[[1 1 1]
[1 1 1]]
int64 (2, 3)
Exemplul 3: np.empty, completat apoi
Nu afișăm conținutul imediat după np.empty: valorile sunt nedefinite. Le completăm întâi pe toate.
import numpy as np
patrate = np.empty(5)
print("Forma:", patrate.shape, "tip:", patrate.dtype)
for i in range(5):
patrate[i] = i ** 2
print(patrate)
Rezultat
Forma: (5,) tip: float64
[ 0. 1. 4. 9. 16.]
Greșeli frecvente
- Dai forma ca două argumente:
np.zeros(2, 3)dă eroare (al doilea argument estedtype). Forma 2D se dă ca tuplu:np.zeros((2, 3)). - Folosești
np.emptycrezând că dă zerouri. Valorile sunt cele rămase în memorie și pot fi orice; pentru zerouri foloseștenp.zeros. - Pui numere zecimale într-un tablou creat cu
zeros_likedintr-un tablou de întregi: valorile sunt trunchiate (2.7 devine 2). Dădtype=float.
Comenzi înrudite
np.full(): Creează un tablou de forma dorită, umplut peste tot cu aceeași valoare.np.eye() și np.identity(): Creează o matrice cu 1 pe diagonală și 0 în rest (matricea identitate).np.array(): Creează un tablou NumPy (ndarray) dintr-o listă, o listă de liste sau alt obiect asemănător.ndarray.shape: Află forma unui tablou (rânduri, coloane), numărul de dimensiuni și numărul total de elemente.