Shape Array in NumPy

Quando si inizia a lavorare con NumPy, uno dei concetti più importanti da capire è la shape di un array. In parole semplici, la shape indica la struttura dei dati contenuti in un array: quante dimensioni possiede e quanti elementi sono presenti in ciascuna di esse.

Comprendere bene questo aspetto è fondamentale perché permette di leggere i dati con maggiore chiarezza, evitare errori durante le operazioni matematiche e scrivere codice Python più ordinato. In questa guida vedremo in modo pratico che cosa significa Shape Array in NumPy, come si ottiene e perché è così utile anche per chi è alle prime esperienze.

Che cosa indica la shape di un array in NumPy

La forma di un array descrive la sua organizzazione interna. Se hai un array semplice, composto da una sola lista di elementi, la shape conterrà un solo valore. Se invece i dati sono disposti su righe e colonne, oppure su più livelli, la shape mostrerà un valore per ogni dimensione.

Per esempio, un array con 5 elementi disposti in una sola riga avrà shape (5,). Un array con 3 righe e 2 colonne avrà shape (3, 2). Questo permette di capire subito come NumPy stia interpretando i dati.

Vediamo un primo esempio pratico:

import numpy as np

array = np.array(
{
    [1, 2, 3, 4]
}
)

print(array.shape)

In questo caso, il risultato sarà (4,), perché l’array contiene una sola dimensione con quattro elementi.

Se invece costruiamo una struttura bidimensionale, la situazione cambia:

import numpy as np

array = np.array(
{
    [1, 2, 3],
    [4, 5, 6]
}
)

print(array.shape)

L’output sarà (2, 3), cioè 2 righe e 3 colonne. Questo è il modo più immediato per leggere la forma di una matrice in NumPy.

Come scoprire la forma di un array con NumPy

Per determinare la shape di un array si utilizza l’attributo .shape. È uno strumento semplice, immediato e molto usato in qualsiasi progetto che lavori con dati numerici, tabelle, matrici o insiemi multidimensionali.

La sintassi è diretta:

import numpy as np

array = np.array(
{
    [10, 20, 30],
    [40, 50, 60]
}
)

forma = array.shape

print(forma)

Questo attributo restituisce una tupla, cioè una sequenza ordinata di numeri che rappresentano la dimensione di ogni asse dell’array. È importante ricordarlo, perché molti principianti si aspettano un valore singolo, mentre NumPy restituisce una struttura adatta anche agli array con più dimensioni.

Se vuoi controllare la forma di un array a tre dimensioni, il comportamento rimane identico:

import numpy as np

array = np.array(
{
    [
        [1, 2],
        [3, 4]
    ],
    [
        [5, 6],
        [7, 8]
    ]
}
)

print(array.shape)

In questo caso otterrai (2, 2, 2). Significa che l’array ha 3 dimensioni, ognuna con due elementi nella relativa struttura.

Usare shape è utile anche per verificare rapidamente se i dati hanno la forma prevista prima di effettuare somme, moltiplicazioni, trasformazioni o operazioni di machine learning. Nella pratica, è uno dei controlli più frequenti quando si lavora con NumPy.

Perché la forma degli array è importante in NumPy

Il significato della shape non è solo descrittivo. La forma di un array influisce direttamente sul modo in cui NumPy esegue le operazioni. Molte funzioni richiedono infatti array compatibili, e conoscere la shape aiuta a capire se due strutture possono essere combinate senza errori.

Per esempio, due array con forme diverse non sempre possono essere sommati tra loro. Ecco un caso semplice:

import numpy as np

a = np.array(
{
    [1, 2, 3]
}
)

b = np.array(
{
    [4, 5, 6]
}
)

print(a.shape)
print(b.shape)
print(a + b)

Qui entrambe le shape sono (3,), quindi l’operazione funziona correttamente. Ma se la struttura dei due array fosse incompatibile, NumPy restituirebbe un errore oppure applicherebbe regole specifiche come il broadcasting.

La shape è inoltre essenziale quando si vuole rimodellare un array, ad esempio usando reshape(). Per trasformare i dati senza perderli, il numero totale degli elementi deve rimanere coerente con la nuova forma desiderata.

Un esempio pratico:

import numpy as np

array = np.array(
{
    [1, 2, 3, 4, 5, 6]
}
)

nuovo_array = array.reshape(
{
    2, 3
}
)

print(nuovo_array)
print(nuovo_array.shape)

In questo esempio, i 6 elementi iniziali vengono redistribuiti in una struttura con 2 righe e 3 colonne. Capire la shape consente quindi di gestire i dati in maniera più flessibile e consapevole.

Dal punto di vista pratico, la forma degli array è importante perché aiuta a:

  • capire la disposizione dei dati;
  • prevenire errori nelle operazioni tra array;
  • preparare correttamente i dati per analisi e modelli;
  • trasformare gli array in modo coerente;
  • leggere con più sicurezza output e risultati.

Per chi è alle prime armi, il consiglio migliore è molto semplice: controllare spesso array.shape. È una piccola abitudine che fa una grande differenza e aiuta a sviluppare una comprensione concreta del funzionamento di NumPy.

In conclusione, Shape Array in NumPy è un concetto basilare ma decisivo. Sapere che cos’è la forma di un array, come determinarla e quale significato abbia nelle operazioni quotidiane rende molto più semplice lavorare con i dati in Python. Una volta compresa la shape, tutto NumPy diventa più leggibile, intuitivo e potente.

Corsi correlati

Design Pattern per videogiochi

I Design Pattern sono soluzioni a problemi comuni che si incontrano nello sviluppo del software. Nel contesto dei videogiochi, questi pattern possono aiutare a gestire la complessità crescente dei giochi moderni. Sei appassionato di videogiochi? Hai mai pensato a come vengono progettati e sviluppati? Sei curioso di scoprire i segreti dietro la creazione dei tuoi giochi preferiti? Allora sei nel posto giusto! Questo corso è stato progettato per fornirti una solida comprensione dei Design Pattern, strumenti fondamentali per ogni sviluppatore di giochi. Attraverso esempi pratici e realistici, esploreremo insieme come questi pattern possono aiutarti a creare giochi più efficienti, flessibili e mantenibili.

Corso Fondamenti di Python

Python, uno dei linguaggi di programmazione più popolari al mondo, è ampiamente utilizzato da colossi dell’informatica e della tecnologia come Google, la Nasa e Mozilla.
Questo corso sui fondamenti di Python esplorerà le ragioni del suo successo duraturo. Impareremo la potente ed espressiva sintassi di Python, che consente di ottenere risultati impressionanti con poche righe di codice.

Blender Masterclass 2

I paesaggi, in generale, possono risultare intimidatori data la loro complessità, costituita da numerosi elementi che sembrano formare qualcosa di virtualmente infinito. Durante le lezioni di questo corso, ci concentreremo su una scomposizione delle diverse fasi coinvolte nella creazione di una scena, affrontandole una alla volta attraverso passi graduati.

Blender Masterclass 1

In questo corso di Blender 3D, Masha, in collaborazione con Gedemy, vi mostrerà il processo di modellazione, UV mapping, shading, e texture painting di un asset. Una volta apprese le basi, vedremo anche come effettuare il baking delle textures e la preparazione con successivo export della mesh in modo che possa essere utilizzabile all’interno di un qualsiasi altro software.

Crea il tuo account gratuito Gedemy

Gedemy è la prima piattaforma di formazione italiana che ti permette di sviluppare competenze in ambiti come Game Design, Programming, Arte, 3D, Tech, AI e molto altro.