Array con valori sequenziali con NumPy in Python
Una delle funzionalità più utilizzate di NumPy è la creazione di array con valori sequenziali. Questo tipo di array è essenziale in molte applicazioni, come l'analisi dei dati, la grafica, e la simulazione numerica.
In questa pagina, esploreremo come creare array con valori sequenziali utilizzando NumPy, coprendo le principali funzioni disponibili e le loro applicazioni pratiche.
Gli array con valori sequenziali sono utili in numerosi contesti:
Inizializzazione di dati: per testare algoritmi o modelli con dati predefiniti e conosciuti.
Grafici e visualizzazioni: creare punti di dati su assi cartesiani o generare sequenze temporali.
Simulazioni: per simulare iterazioni o passi temporali in algoritmi e modelli di simulazione.
Automazione: per generare in modo automatico sequenze numeriche senza doverle digitare manualmente.
Funzione numpy.arange() di NumPy
La funzione numpy.arange() è una delle più utilizzate per creare array con valori sequenziali. È simile alla funzione range() di Python, ma con il vantaggio di creare un array NumPy, che può essere ulteriormente manipolato usando altre funzioni di NumPy.
import numpy as np
array_sequenziale = np.arange(start, stop, step, dtype=None)
dove:
start (opzionale): il valore iniziale della sequenza. Se omesso, la sequenza parte da 0.
stop: Il valore finale della sequenza (non incluso).
step (opzionale): l'incremento tra un valore e l'altro nella sequenza. Il valore predefinito è 1.
dtype (opzionale): il tipo di dato dell'array risultante. Se non specificato, NumPy lo deduce automaticamente.
Creiamo un array di numeri interi da 0 a 9:
import numpy as np
array_sequenziale = np.arange(10)
print(array_sequenziale) # Output: [0 1 2 3 4 5 6 7 8 9]
Funzione numpy.linspace() di NumPy
La funzione numpy.linspace() è ideale per creare un array con un numero specifico di valori equidistanti tra un valore iniziale e uno finale. Questa funzione è particolarmente utile quando si ha bisogno di un numero fisso di valori tra due estremi.
import numpy as np
array_linspace = np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
dove:
start: il valore iniziale della sequenza.
stop: il valore finale della sequenza.
num (opzionale): il numero di valori da generare. Il valore predefinito è 50.
endpoint (opzionale): se True, stop è incluso nella sequenza. Il valore predefinito è True.
retstep (opzionale): se True, ritorna anche la distanza tra i valori della sequenza.
dtype (opzionale): il tipo di dato dell'array risultante.
Creiamo un array con 5 valori equidistanti tra 0 e 1:
import numpy as np
array_linspace = np.linspace(0, 1, num=5)
print(array_linspace) # Output: [0. 0.25 0.5 0.75 1. ]
Funzione numpy.logspace() di NumPy
La funzione numpy.logspace() genera valori equidistanti su una scala logaritmica. È utile in situazioni dove i valori crescono esponenzialmente, come in alcune applicazioni scientifiche e finanziarie.
import numpy as np
array_logspace = np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
dove:
start: l'esponente iniziale.
stop: l'esponente finale.
num (opzionale): il numero di valori da generare. Il valore predefinito è 50.
base (opzionale): la base del logaritmo. Il valore predefinito è 10.
endpoint (opzionale): se True, stop è incluso nella sequenza.
dtype (opzionale): il tipo di dato dell'array risultante.
Creiamo un array di 5 valori equidistanti tra 101 e 103:
import numpy as np
array_logspace = np.logspace(1, 3, num=5)
print(array_logspace) # Output: [ 10. 31.6227766 100. 316.22776602 1000. ]
Confronto tra arange, linspace e logspace
arange() è utile quando si desidera creare una sequenza con incrementi costanti e si conoscono esattamente i limiti della sequenza e il passo.
linspace() è preferibile quando si ha bisogno di un numero fisso di valori tra due estremi, indipendentemente dall'incremento.
ogspace() è ideale per generare sequenze esponenziali su una scala logaritmica.