Nou Generator de prompt AI — scrie prompturi mai bune pentru ChatGPT, Claude și Gemini →

ndarray.reshape() în NumPy

Schimbă forma unui tablou (de exemplu din 12 elemente în 3 x 4) fără să-i schimbe datele.

Sintaxă
a.reshape(forma, order='C', copy=None)
np.reshape(a, shape, order='C', copy=None)

Ce face ndarray.reshape()

reshape() reașază aceleași elemente într-o altă formă. Numărul total de elemente trebuie să rămână același: 12 elemente pot deveni (3, 4), (2, 6) sau (2, 2, 3), dar nu (5, 2).

Una dintre dimensiuni poate fi -1: NumPy o calculează singur din celelalte. a.reshape(-1, 3) înseamnă „câte rânduri e nevoie, cu 3 coloane”.

Când se poate, rezultatul este o vedere (view): folosește aceeași memorie cu tabloul inițial, deci o modificare într-unul se vede și în celălalt. Parametrul copy există din NumPy 2.1.

Parametri

Parametru Descriere
forma Noua formă: un tuplu sau, la metodă, numere separate (a.reshape(3, 4)). O dimensiune poate fi -1.
order 'C' (implicit) citește și scrie elementele pe rânduri; 'F' pe coloane.
copy None (implicit): copiază doar dacă este necesar. True: copiază mereu. False: eroare dacă nu se poate fără copie.

Ce returnează

Un tablou cu noua formă, de obicei o vedere asupra acelorași date.

Exemple

Exemplul 1: Vânzări pe 12 luni, pe trimestre

Cele 12 valori lunare devin 4 rânduri (trimestre) a câte 3 luni.

import numpy as np

luni = np.arange(1, 13) * 100
print(luni)

trimestre = luni.reshape(4, 3)
print(trimestre)
print(trimestre.shape)

Rezultat

[ 100  200  300  400  500  600  700  800  900 1000 1100 1200]
[[ 100  200  300]
 [ 400  500  600]
 [ 700  800  900]
 [1000 1100 1200]]
(4, 3)

Exemplul 2: Dimensiunea calculată cu -1

import numpy as np

a = np.arange(12)
print(a.reshape(-1, 6))
print(a.reshape(2, -1).shape)
print(a.reshape(-1, 1).shape)

Rezultat

[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]]
(2, 6)
(12, 1)

Exemplul 3: Formă incompatibilă

12 elemente nu încap într-o formă de 5 x 2. Prindem eroarea ca să vedem mesajul.

import numpy as np

a = np.arange(12)
try:
    a.reshape(5, 2)
except ValueError as e:
    print("Eroare:", e)

Rezultat

Eroare: cannot reshape array of size 12 into shape (5,2)

Greșeli frecvente

  • Crezi că reshape schimbă tabloul pe loc. Returnează un tablou nou; scrie a = a.reshape(3, 4).
  • Pui -1 pe mai multe dimensiuni: a.reshape(-1, -1) dă eroare. Doar una poate fi necunoscută.
  • Modifici rezultatul și te miri că s-a schimbat și tabloul inițial. Rezultatul este o vedere; folosește .copy() dacă vrei date separate.

Comenzi înrudite

  • ndarray.shape: Află forma unui tablou (rânduri, coloane), numărul de dimensiuni și numărul total de elemente.
  • ndarray.ravel() și flatten(): Transformă un tablou cu mai multe dimensiuni într-unul 1D: ravel dă o vedere când poate, flatten dă mereu o copie.
  • ndarray.T și np.transpose(): Transpune un tablou: rândurile devin coloane și coloanele devin rânduri.
  • Copie și vedere (copy vs view): Explică diferența dintre o vedere (aceleași date) și o copie în NumPy și cum le recunoști cu .base și np.shares_memory.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: ndarray.reshape()

Ai o nelămurire despre utilizarea comenzii ndarray.reshape() sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.