Corso
Gli array sono strutture dati fondamentali in molti linguaggi di programmazione: permettono di memorizzare collezioni di elementi dello stesso tipo in un blocco contiguo di memoria, ovvero con tutti gli elementi archiviati in sequenza senza interruzioni. Questa struttura consente un accesso e una manipolazione efficienti degli elementi memorizzati.
A differenza di linguaggi come C o Java, Python non dispone di un tipo di dato array incorporato nel senso tradizionale. Invece, Python offre diverse alternative che funzionano come array, ciascuna adatta a differenti esigenze e scenari di programmazione.
La libreria standard di Python include il modulo array, che consente di creare array compatti con tipo ristretto, simili a quelli dei linguaggi più staticamente tipizzati.
Per il calcolo numerico e scientifico, però, la libreria NumPy e il suo ndarray (array n-dimensionale) sono diventati lo standard di riferimento in Python. Gli array di NumPy offrono funzionalità estese, ben oltre la struttura di base proposta dalla libreria standard di Python.
Basi di un array
NumPy è il pacchetto fondamentale per il calcolo numerico in Python: offre un potente oggetto array e una suite di funzioni per lavorare in modo efficiente con questi array. I vantaggi di NumPy sono:
• Multidimensionale: Supporta array non solo monodimensionali.
• Operazioni potenti: Include un'ampia libreria di funzioni matematiche e statistiche.
• Vettorizzazione: Consente di eseguire operazioni su interi array senza dover scrivere cicli espliciti, migliorando le prestazioni.
• Integrazione: Si integra senza problemi con altre librerie scientifiche come SciPy, Pandas e Matplotlib.
Iniziamo a creare un array con NumPy. Per prima cosa importi NumPy e poi usi la funzione array() per creare un array. La funzione array() accetta una lista come input.
import numpy
my_array = numpy.array([0, 1, 2, 3, 4])
print(my_array)
# Expected output: [0 1 2 3 4]
Il tipo di my_array è un numpy.ndarray.
import numpy
my_array = numpy.array([0, 1, 2, 3, 4])
print(type(my_array))
# Expected output: <class 'numpy.ndarray'>
Esempi di array
Esempio di creazione di un array
Nell'esempio seguente convertirai una lista in un array usando la funzione array() di NumPy. Creerai una lista a_list composta da interi. Poi, usando la funzione array(), la convertirai in un array.
import numpy as np
a_list = [1, 2, 3, 4]
print(a_list)
# Expected output: [1, 2, 3, 4]
import numpy as np
a_list = [1, 2, 3, 4]
an_array = np.array(a_list)
print(an_array)
# Expected output: [1 2 3 4]
Esempio di operazione su array
Nell'esempio seguente sommi due array NumPy. Il risultato è una somma elemento per elemento di entrambi gli array.
import numpy as np
array_A = np.array([1, 2, 3])
array_B = np.array([4, 5, 6])
print(array_A + array_B)
# Expected output: [5 7 9]
Esempio di indicizzazione di un array
Puoi selezionare un elemento a un indice specifico di un array usando la notazione di indicizzazione.
import numpy as np
months_array = np.array(['Jan', 'Feb', 'March', 'Apr', 'May'])
print(months_array[3])
# Expected output: Apr
Puoi anche estrarre una porzione di elementi usando la notazione di slicing, specificando un intervallo di indici.
import numpy as np
months_array = np.array(['Jan', 'Feb', 'March', 'Apr', 'May'])
print(months_array[2:5])
# Expected output: ['March', 'Apr', 'May']
Esempio interattivo: da lista ad array
Nell'esempio seguente importerai numpy con l'alias np. Crea gli array prices_array ed earnings_array a partire dalle liste prices ed earnings, rispettivamente. Infine, stampa entrambi gli array.
import numpy as np
# Lists
prices = [170.12, 93.29, 55.28, 145.30, 171.81, 59.50, 100.50]
earnings = [9.2, 5.31, 2.41, 5.91, 15.42, 2.51, 6.79]
# NumPy arrays
prices_array = np.array(prices)
earnings_array = np.array(earnings)
# Print the arrays
print(prices_array)
print(earnings_array)
# Expected output:
# [170.12 93.29 55.28 145.3 171.81 59.5 100.5 ]
# [ 9.2 5.31 2.41 5.91 15.42 2.51 6.79]
Per saperne di più sugli array NumPy in Python, guarda questo video del nostro corso Introduzione a Python per la finanza.
Questo contenuto è tratto dal corso Introduzione a Python per la finanza di DataCamp, a cura di Adina Howe.
Dai un'occhiata al nostro Tutorial sugli array NumPy in Python.
Domande frequenti
Quali sono le principali differenze tra il modulo array di Python e gli array di NumPy?
Le differenze principali riguardano funzionalità e casi d'uso. Il modulo array di Python fornisce funzionalità di base per creare array compatti e con tipo ristretto, simili a quelli di linguaggi come C. Gli array di NumPy, invece, offrono funzionalità avanzate come il supporto per array multidimensionali, un'ampia libreria di funzioni matematiche e ottimizzazioni delle prestazioni tramite vettorizzazione. In generale, NumPy è preferito per il calcolo numerico e scientifico.
Posso usare il modulo array di Python per tipi di dato stringa o oggetto?
No, il modulo array è progettato per contenere solo tipi di dato di base come interi, float e simili. Non supporta stringhe o oggetti. Per collezioni di questi tipi, le liste di Python o altre strutture dati come tuple o dizionari sono più appropriate.
Perché usare gli array di NumPy invece delle liste di Python per dati numerici?
Gli array di NumPy sono ottimizzati specificamente per i calcoli numerici. Offrono capacità di memorizzazione e elaborazione efficienti superiori alle liste di Python, soprattutto per dataset di grandi dimensioni. Funzionalità come la vettorizzazione consentono di eseguire operazioni su interi array senza cicli espliciti, migliorando notevolmente prestazioni e leggibilità del codice.

