Indicizzazione in NumPy

L’indicizzazione in NumPy è uno degli aspetti fondamentali per lavorare in modo efficiente con gli array. Comprendere come accedere, modificare e selezionare porzioni di dati consente di scrivere codice più veloce, leggibile e scalabile, soprattutto in contesti di data analysis, machine learning e scientific computing.

In questa guida analizziamo in modo pratico e progressivo le principali tecniche di indicizzazione e slicing in NumPy.

Indicizzazione e slicing di array monodimensionali

Gli array monodimensionali (simili alle liste Python) rappresentano il caso più semplice.

Indicizzazione base

Puoi accedere agli elementi tramite indice:

import numpy as nparr = np.array([10, 20, 30, 40, 50])print(arr[0])  # 10
print(arr[2]) # 30

Slicing

Lo slicing permette di selezionare sottoinsiemi:

print(arr[1:4])   # [20 30 40]
print(arr[:3]) # [10 20 30]
print(arr[::2]) # [10 30 50]

Struttura:
array[start:stop:step]

👉 Nota strategica: lo slicing in NumPy restituisce una vista (view), non una copia. Questo significa che modificare lo slice modifica anche l’array originale.

Indicizzazione e Slicing di Array Bidimensionali

Gli array bidimensionali (matrici) introducono una seconda dimensione: righe e colonne.

Accesso agli elementi

arr2d = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])print(arr2d[0, 1]) # 2

Selezione di righe e colonne

print(arr2d[1, :])   # seconda riga → [4 5 6]
print(arr2d[:, 1]) # seconda colonna → [2 5 8]

Slicing avanzato

print(arr2d[0:2, 1:3])
# Output:
# [[2 3]
# [5 6]]

👉 Insight operativo: padroneggiare il slicing 2D è essenziale per operazioni su dataset, immagini e matrici numeriche.

Indicizzazione e Slicing di Array Tridimensionali

Gli array tridimensionali sono utilizzati in contesti più avanzati, come immagini RGB o dati multi-dimensione.

Struttura

Un array 3D ha tre assi:

  • profondità
  • righe
  • colonne
arr3d = np.array([
[[1, 2], [3, 4]],
[[5, 6], [7, 8]]
])

Accesso agli elementi

print(arr3d[0, 1, 1])  # 4

Slicing

print(arr3d[:, :, 1])
# Output:
# [[2 4]
# [6 8]]

👉 Applicazione reale: questo tipo di indicizzazione è fondamentale nel processing di immagini e nei modelli di deep learning.

Indicizzazione Negativa

NumPy supporta l’indicizzazione negativa per accedere agli elementi partendo dalla fine.

Esempi

arr = np.array([10, 20, 30, 40, 50])print(arr[-1])  # 50
print(arr[-2]) # 40

Slicing con indici negativi

print(arr[-3:])   # [30 40 50]
print(arr[:-2]) # [10 20 30]

👉 Best practice: usare l’indicizzazione negativa rende il codice più flessibile, soprattutto quando la dimensione dell’array non è fissa.

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.