Installazione di NumPy

In questa lezione parleremo dell’installazione di NumPy. Infatti, per poter utilizzare questa libreria, occorre innanzitutto assicurarci di averla installata nel nostro ambiente di sviluppo Python. Se ancora non abbiamo provveduto con l’installazione, possiamo procedere utilizzando pip, ovvero il noto gestore dei pacchetti di Python.

Per verificare se NumPy non è installato nel nostro ambiente Python, possiamo dunque eseguire il seguente comando in una shell o nel terminale del nostro sistema operativo:

pip show numpy

Se NumPy non è installato, riceveremo, nel nsotro caso, un messaggio di errore che indica che il pacchetto non è stato trovato.

Altrimenti, possiamo anche utilizzare il comando import direttamente in un file o ambiente Python. Ad esempio, possiamo aprire un interprete Python e provare ad importare NumPy:

import numpy

Se NumPy non è installato, riceveremo, in questo caso, un errore di importazione che indica che il modulo non può essere trovato.

Questi presentati sono due modi comuni per verificare se NumPy è installato nel nostro sistema.

Migliora le tue capacità di programmazione Python seguendo i nostri corsi in diretta!

corsi Python

Installazione NumPy

Se NumPy non è installato nel sistema, possiamo dunque eseguire il seguente comando nel nostro terminale o prompt dei comandi:

pip install numpy

Attendiamo che l’installazione sia completa e iniziamo a lavorare con questa importante libreria di Python!

Creazione di array unidimensionali con NumPy

Dopo l’installazione di NumPy, possiamo iniziare a utilizzarlo nei nostri script Python. Ecco un esempio di come importare NumPy e utilizzarlo per eseguire operazioni di base, dopo la sua installazione:

import numpy as np

# Creazione di un array unidimensionale (vettore)
arr = np.array([1, 2, 3, 4, 5])
print("Array creato:", arr)

In questo esempio, abbiamo importato NumPy utilizzando l’alias np per convenienza. Abbiamo quindi creato un array unidimensionale utilizzando la funzione np.array().

Creazione di array bidimensionali con NumPy

In questo esempio creiamo un array bidimensionale (matrice), ovvero un array che ha due dimensioni (righe e colonne), utilizzando la funzione np.array().

import numpy as np

# Creazione di un array bidimensionale (matrice)
arr2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("Array bidimensionale (matrice):")
print(arr2d)

Definizione di matrice

Ricordiamo la definizione di matrice:

Una matrice è una struttura dati bidimensionale composta da righe e colonne di elementi, organizzati in una griglia rettangolare. Ogni elemento della matrice è identificato da due indici: l’indice della riga e l’indice della colonna.

Formalmente, una matrice è una collezione rettangolare di numeri, simboli o espressioni, disposti in righe e colonne, come:

A =  [ [a11, a12, ..., a1n],
       [a21, a22, ..., a2n],
       [⋮    ⋮    ⋱    ⋮   ],
       [am1, am2, ..., amn]
]

dove m rappresenta il numero di righe ed n rappresenta il numero di colonne. Gli elementi della matrice sono denotati con aij​, dove i rappresenta l’indice della riga e j rappresenta l’indice della colonna.

Le matrici sono ampiamente utilizzate in vari campi, tra cui matematica, fisica, informatica e ingegneria, per rappresentare dati strutturati in modo tabulare, risolvere sistemi di equazioni lineari, eseguire trasformazioni geometriche, elaborare immagini e altro ancora. In algebra lineare, le matrici sono oggetti fondamentali utilizzati per rappresentare trasformazioni lineari e risolvere una vasta gamma di problemi.

Esempi di creazione di matrici in Python

In Python possiamo definire una matrice A utilizzando una lista di liste in Python, dove ogni lista interna rappresenta una riga della matrice. Utilizzando un ciclo for, la matrice viene poi visualizzata stampando ogni riga separatamente.

# Definizione di una matrice in Python
A = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# Visualizzazione della matrice
print("Matrice A:")
for row in A:
    print(row)

La visualizzazione della matrice apparirà in questo modo:

Matrice A:
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]

Creazione di array multidimensionali con NumPy

In questo esempio creiamo un array multidimensionale (tensor) utilizzando la funzione np.array().

import numpy as np

# Creazione di un array multidimensionale (tensor)
arr3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]])
print("Array multidimensionale (tensor):")
print(arr3d)

Definizione di tensore

Un tensore è una generalizzazione delle matrici e dei vettori che può avere più di due indici per identificare i suoi elementi.

I tensori sono ampiamente utilizzati in vari campi, tra cui fisica, ingegneria, informatica e machine learning, per rappresentare e manipolare dati multidimensionali.

Abbiamo infatti le seguenti definzioni e notazioni:

Definizione e Notazione

  • Scalare: Un singolo numero (dimensione 0).
  • Vettore: Una lista di numeri (dimensione 1).
  • Matrice: Una tabella di numeri con righe e colonne (dimensione 2).
  • Tensore: Un array di numeri con più di due dimensioni (dimensione N).

Definizione formale: Formalmente, un tensore di ordine n è una struttura dati multidimensionale che contiene n indici, e ogni elemento del tensore è identificato da un insieme di n indici. Ad esempio, un tensore di ordine 1 è un vettore, un tensore di ordine 2 è una matrice, e un tensore di ordine superiore a 2 è un tensore multidimensionale.

Utilizzo: I tensori sono utilizzati per rappresentare dati di diversa natura, come:

  • Immagini e video, dove ogni pixel può essere rappresentato come un tensore multidimensionale.
  • Dati sensoriali, come segnali audio o dati provenienti da sensori.
  • Dati strutturati e non strutturati in analisi dei dati e machine learning.
  • Campi vettoriali e tensoriali in fisica e ingegneria, come lo spazio-tempo nella teoria della relatività.
  • Modelli e parametri in reti neurali e deep learning.

I tensori sono una componente chiave in molti algoritmi e applicazioni avanzate, come il riconoscimento di immagini, la classificazione del testo, il riconoscimento del linguaggio naturale e altro ancora. La loro flessibilità e potenza li rendono uno strumento fondamentale in numerosi campi della scienza e dell’ingegneria.

In Python, i tensori sono comunemente rappresentati e manipolati utilizzando la libreria TensorFlow, che è stata sviluppata da Google per il machine learning e altre applicazioni che coinvolgono calcoli su tensori. TensorFlow offre un’interfaccia user-friendly per la creazione, l’analisi e l’elaborazione di tensori multidimensionali in modo efficiente e ottimizzato per la GPU.

Conclusioni

In questa lezione abbiamo parlato dell’installazione di NumPy e come effettuare le prime creazioni di array unidimensionali, bidimensionali (matrici) e multidimensionali (tensor) utilizzando np.array. Nelle prossima lezione impararemo a svolgere le operazioni con gli array in NumPy.

Alcuni link utili

Corso in diretta su Python

Indice tutorial sul linguaggio Python

Introduzione alla programmazione ad oggetti

Definire una classe in Python

Classi in Python

Metodi delle classi in Python

Calcolatrice in Python utilizzando le classi

Come aggiungere un numero random in un file che contiene dei numeri

Come creare matrici in Python