Ce face np.array()
np.array() este felul obișnuit de a transforma datele tale Python într-un tablou NumPy. Dintr-o listă simplă obții un tablou cu o dimensiune (1D), dintr-o listă de liste un tablou cu două dimensiuni (2D, ca un tabel cu rânduri și coloane).
Toate elementele unui tablou au același tip. Dacă amesteci numere întregi cu numere zecimale, NumPy le transformă pe toate în float64. Cu parametrul dtype alegi singur tipul.
Spre deosebire de o listă, pe un tablou poți face calcule dintr-odată: preturi * 2 dublează fiecare element, fără buclă.
Parametri
| Parametru | Descriere |
|---|---|
object |
Datele: o listă, o listă de liste, un tuplu sau alt tablou. |
dtype |
Tipul elementelor, de exemplu int, float, "float32". Implicit este ales din date. |
copy |
Implicit True: datele sunt copiate. Cu copy=False NumPy nu copiază, iar dacă o copie este totuși necesară apare ValueError. |
ndmin |
Numărul minim de dimensiuni al rezultatului. Dimensiunile lipsă se adaugă în față. |
Ce returnează
Un obiect ndarray nou.
Exemple
Exemplul 1: Din listă și din listă de liste
O listă dă un tablou 1D; o listă de liste de aceeași lungime dă un tablou 2D.
import numpy as np
note = np.array([9, 7, 10, 8])
print(note)
print(type(note))
vanzari = np.array([[120, 95, 130],
[80, 110, 105]])
print(vanzari)
print("Dimensiuni:", vanzari.ndim)
Rezultat
[ 9 7 10 8]
<class 'numpy.ndarray'>
[[120 95 130]
[ 80 110 105]]
Dimensiuni: 2
Exemplul 2: Tipul ales automat și dtype
Un singur număr zecimal face tot tabloul float64. Cu dtype=float ceri explicit numere zecimale.
import numpy as np
a = np.array([1, 2, 3])
b = np.array([1, 2.5, 3])
c = np.array([1, 2, 3], dtype=float)
print(a, a.dtype)
print(b, b.dtype)
print(c, c.dtype)
Rezultat
[1 2 3] int64
[1. 2.5 3. ] float64
[1. 2. 3.] float64
Exemplul 3: Calcule pe tot tabloul
Operația se aplică fiecărui element. Cu o listă Python, * 2 ar repeta lista.
import numpy as np
preturi_lista = [12, 30, 45]
preturi = np.array(preturi_lista)
print(preturi_lista * 2)
print(preturi * 2)
print(preturi * 1.19)
Rezultat
[12, 30, 45, 12, 30, 45]
[24 60 90]
[14.28 35.7 53.55]
Greșeli frecvente
- Dai numerele ca argumente separate:
np.array(1, 2, 3)dăTypeError. Datele se dau într-o singură listă:np.array([1, 2, 3]). - Pui în listă rânduri de lungimi diferite:
np.array([[1, 2], [3]])dăValueError, pentru că un tablou 2D trebuie să fie dreptunghiular. - Te aștepți ca
np.array([1, 2, 3]) / 2să rămână întreg. Împărțirea cu/dă mereufloat64; pentru împărțire întreagă folosește//.
Comenzi înrudite
np.arange(): Creează un tablou cu valori din pas în pas, de la start până la stop (stop nu este inclus), ca range() din Python.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.ndarray.dtype: Arată tipul elementelor dintr-un tablou (int64, float64, bool etc.) și câți octeți ocupă fiecare.ndarray.shape: Află forma unui tablou (rânduri, coloane), numărul de dimensiuni și numărul total de elemente.