ndarray.shape în NumPy

Află forma unui tablou (rânduri, coloane), numărul de dimensiuni și numărul total de elemente.

Sintaxă
a.shape
a.ndim
a.size
len(a)

Ce face ndarray.shape

a.shape este un tuplu cu lungimea pe fiecare dimensiune. Un tablou cu 2 rânduri și 3 coloane are shape egal cu (2, 3); un tablou 1D cu 4 elemente are (4,).

a.ndim este numărul de dimensiuni (lungimea tuplului shape), iar a.size numărul total de elemente (produsul valorilor din shape). len(a) dă doar lungimea primei dimensiuni, adică numărul de rânduri.

Acestea sunt atribute, nu metode: se scriu fără paranteze.

Ce returnează

shape: tuplu de întregi; ndim, size, len(a): întregi.

Exemple

Exemplul 1: Tablou 1D și tablou 2D

import numpy as np

note = np.array([9, 7, 10, 8])
vanzari = np.array([[120, 95, 130],
                    [80, 110, 105]])

for nume, t in [("note", note), ("vanzari", vanzari)]:
    print(nume, "shape:", t.shape, "ndim:", t.ndim, "size:", t.size, "len:", len(t))

Rezultat

note shape: (4,) ndim: 1 size: 4 len: 4
vanzari shape: (2, 3) ndim: 2 size: 6 len: 2

Exemplul 2: Folosirea formei în cod

Tuplul shape se poate despacheta în două variabile.

import numpy as np

vanzari = np.array([[120, 95, 130],
                    [80, 110, 105]])
randuri, coloane = vanzari.shape
print(f"{randuri} magazine, {coloane} luni")

Rezultat

2 magazine, 3 luni

Greșeli frecvente

  • Scrii a.shape() cu paranteze: primești TypeError: 'tuple' object is not callable.
  • Folosești len(a) pentru numărul de elemente al unui tablou 2D. len dă doar numărul de rânduri; totalul este a.size.
  • Confunzi (4,) cu (4, 1). Primul este un tablou 1D, al doilea o coloană 2D; broadcasting-ul le tratează diferit.

Comenzi înrudite

  • ndarray.reshape(): Schimbă forma unui tablou (de exemplu din 12 elemente în 3 x 4) fără să-i schimbe datele.
  • ndarray.dtype: Arată tipul elementelor dintr-un tablou (int64, float64, bool etc.) și câți octeți ocupă fiecare.
  • np.array(): Creează un tablou NumPy (ndarray) dintr-o listă, o listă de liste sau alt obiect asemănător.
  • Broadcasting: Regulile prin care NumPy face operații între tablouri de forme diferite, de exemplu o matrice și un rând sau un scalar.