Python Tutorial: cos'è NumPy e come usare la libreria NumPy in Python

Python Tutorial: cos'è NumPy e come usare la libreria NumPy in Python
Python è un linguaggio evoluto che deve la sua potenza, e la sua popolarità alle librerie.
NumPy è una di queste, forse quella in grado di esprimere la maggiore versatilità del linguaggio.
Questo tutorial NumPy spiega le basi di NumPy, come la sua architettura e ambiente, vediamolo insieme.

Estimated reading time: 13 minuti


NumPy, che sta per Numerical Python, è una libreria Python open source composta da elementi multidimensionali e monodimensionali. È uno standard che calcola i dati numerici in Python. NumPy è più ampiamente utilizzato in quasi tutti i domini in cui è richiesto il calcolo numerico, come la scienza e l'ingegneria; quindi, le funzionalità API NumPy sono altamente utilizzate nella scienza dei dati e nei pacchetti Python scientifici, tra cui Pandas, SciPy, Matplotlib, scikit-learn, scikit-image e molti altri.


Questo tutorial NumPy spiega le basi di NumPy, come la sua architettura, e l'ambiente. Tutto questo è spiegato con l'aiuto di esempi per una migliore comprensione.


Perché usare NumPy

NumPy è un pacchetto fondamentale per il calcolo numerico in Python. Fornisce funzioni matematiche per calcolare i dati e funzioni per far funzionare in modo efficiente array e matrici multidimensionali. Ecco alcuni motivi per cui NumPy è fondamentale:


- NumPy include una vasta gamma di funzioni matematiche per l'aritmetica di base, l'algebra lineare, l'analisi di Fourier e altro ancora.
- NumPy esegue operazioni numeriche su grandi set di dati in modo efficiente.
- NumPy supporta array multidimensionali, consentendo la rappresentazione di strutture di dati complesse come immagini, onde sonore e tensori nei modelli di apprendimento automatico.
- Supporta la scrittura di codice conciso e leggibile per calcoli matematici complessi.
- NumPy si integra con altre biblioteche per fare calcoli scientifici; questi sono SciPy (per l'informatica scientifica), Pandas (per la manipolazione e l'analisi dei dati) e scikit-learn (per l'apprendimento automatico).
- Molte librerie e strumenti di informatica scientifica e numerica sono costruiti su NumPy.
- La sua ampia adozione e stabilità lo rendono una scelta standard per le attività di calcolo numerico.

Nel complesso, NumPy svolge un ruolo cruciale nell'ecosistema Python per il calcolo scientifico, l'analisi dei dati, l'apprendimento automatico e altro ancora. Le sue efficienti operazioni di array e ampie funzioni matematiche lo rendono uno strumento indispensabile per lavorare con dati numerici in Python.


NumPy Applicazioni

L'API NumPy in Python è utilizzata principalmente per l'informatica numerica. Fornisce supporto per una vasta gamma di funzioni matematiche per operare sui dati in modo efficiente. Di seguito sono riportati alcuni settori di applicazione comuni in cui NumPy è ampiamente utilizzato:


- Analisi dei dati: NumPy offre operazioni di matrici rapide ed efficaci, rendendole adatte a attività come la pulizia dei dati, il filtraggio e la trasformazione. È utilizzato prevalentemente nell'analisi e nella gestione scientifica dei dati, in particolare quando si lavora con set di dati estesi e di grandi dimensioni.
- Apprendimento automatico (machine learning) e intelligenza artificiale: diversi framework di machine learning e deep learning in Python, come TensorFlow e PyTorch, si basano su array NumPy per la gestione di dati di input, parametri di modello e uscite.
- Informatica scientifica: NumPy è ampiamente utilizzato in applicazioni di calcolo scientifico come fisica, chimica, biologia e astronomia per la manipolazione dei dati, simulazioni numeriche e analisi. NumPy è spesso utilizzato nelle simulazioni numeriche e nella modellazione computazionale per risolvere equazioni differenziali, problemi di ottimizzazione e altri problemi matematici.
- Manipolazione delle array: NumPy fornisce un assortimento di metodi per manipolare array, come il ridimensionamento, l'affettatura, l'indicizzazione, l'impilamento, la scissione e la concatenatura degli array. Queste tecniche sono essenziali per la preparazione e la manipolazione dei dati in diversi lavori di calcolo scientifico.
- Finanza ed economia: l'API NumP è anche ampiamente utilizzata nell'analisi dei dati finanziari e nell'economia per effettuare l'ottimizzazione del portafoglio, l'analisi dei rischi, l'analisi delle serie temporali e la modellazione statistica.
- Engineering and Robotics: NumPy è utilizzato in discipline ingegneristiche come l'ingegneria meccanica, civile ed elettrica per compiti come l'analisi degli elementi finiti, la progettazione di sistemi di controllo e le simulazioni di robotica.
- Elaborazione di immagini e segnali: NumPy è ampiamente utilizzato nell'elaborazione e nell'analisi di immagini e segnali.
- Visualizzazione dei dati: NumPy non fornisce la visualizzazione dei dati, ma supporta le librerie Matplotlib e Seaborn per generare grafici e visualizzazioni da dati numerici.

Nel complesso, la versatilità e l'efficienza di NumPy lo rendono un pacchetto Python essenziale in una vasta gamma di aree di applicazione nel calcolo scientifico, nell'analisi dei dati e oltre.


Esempio

Il seguente è un esempio di Python NumPy:


# Importing NumPy Array
import numpy as np
# Creating an array using np.array() method
arr = np.array()
# Printing
print(arr) # Prints
NumPy Codebase

Il codice sorgente di NumPy può essere trovato in questo repository github: https://github.com/numpy/numpy


La documentazione di NumPy

La documentazione di NumPy, i manuali di riferimento e la guida per l'utente possono essere trovati a questi link:


- https://numpy.org/doc/stable/user/absolute-beginners.html
- https://numpy.org/devdocs/dev/index.html
Operazioni con NumPy

Utilizzando NumPy, uno sviluppatore può eseguire le seguenti operazioni


- Operazioni matematiche e logiche sugli array.
- Fourier si trasforma e le routine per la manipolazione delle forme.
- Operazioni legate all'algebra lineare. NumPy ha funzioni integrate per l'algebra lineare e la generazione di numeri casuali.
Come MatLab

NumPy è spesso usato insieme a pacchetti come SciPy (Scientific Python) e Mat-plotlib. Questa combinazione è ampiamente utilizzata come sostituto di MatLab, una piattaforma popolare per l'informatica tecnica. Tuttavia, l'alternativa Python a MatLab è ora vista come un linguaggio di programmazione più moderno e completo.


È open source, che è un ulteriore vantaggio di NumPy.


Distribuzione NumPy

La distribuzione standard Python non viene fornita con il modulo NumPy. Un'alternativa leggera è installare NumPy usando il popolare programma di installazione di pacchetti Python, pip.


pip install numpy

Il modo migliore per abilitare NumPy è quello di utilizzare un pacchetto binario installabile specifico per il sistema operativo. Questi binari contengono lo stack di SciPy completo (inclusi NumPy, SciPy, matplotlib, IPython, SymPy e pacchetti nose insieme a core Python).


Oggetto NdArray

L'oggetto più importante definito in NumPy è un tipo di array N-dimensionale chiamato ndarray. Descrive la raccolta di oggetti dello stesso tipo. Gli elementi della raccolta sono accessibili utilizzando un indice basato su zero.


Ogni elemento in un ndarray assume la stessa dimensione di blocco nella memoria. Ogni elemento in ndarray è un oggetto di oggetto di tipo dati (chiamato dtype).


Qualsiasi elemento estratto da un oggetto ndarray (per slicing) è rappresentato da un oggetto Python di uno dei tipi di array scalare. Il diagramma seguente mostra una relazione tra ndarray, oggetto di tipo di dati (dtype) e tipo scalare array


ndarray numpyndarray numpy

Un'istanza di classe ndarray può essere costruita da diverse routine di creazione di array descritti più avanti nel tutorial. Il ndarray di base viene creato utilizzando una funzione di matrice in NumPy come segue .


numpy.array

Crea un ndarray da qualsiasi oggetto che espone l'interfaccia di matrice o da qualsiasi metodo che restituisce un array.


numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

Il costruttore di cui sopra prende i seguenti parametri ?


Sr. No.Parametro & Descrizione1Oggetto Qualsiasi oggetto che espone il metodo di interfaccia array restituisce un array o qualsiasi sequenza (nidava).2il dtipo Tipo di array di dati desiderati, opzionaleIl terzoCopia di copia Opzionale. Per impostazione predefinita (vero), l'oggetto viene copiatoIl 4Ordine di ordine C (voto maggiore) o F (colonna maggiore) o A (qualsiasi) (predefinito)5Un subok Per impostazione predefinita, l'array restituito è stato costretto a essere un array di classi base. Se è vero, le sottoclassi passavano attraverso6ndmin Specifica le dimensioni minime dell'array risultante

Dai un'occhiata ai seguenti esempi per capire meglio.


Esempio 1
import numpy as np
a = np.array()
print a

Le tre righe in sequenza esprimono:


- importazione della libreria numpy e definizione alias np
- definizione array a una dimensione contenente tre elementi: uno, due e tre
- stampa a video dell'array

L'output è il seguente


Esempio 2
# more than one dimensions
import numpy as np
a = np.array(, ])
print a

Le tre righe in sequenza esprimono:


- importazione della libreria numpy e definizione alias np
- definizione array a due dimensioni contenente quattro elementi elementi suddivisi in due righe: uno, due nella prima rigam e tre, quattro nella seconda riga
- stampa a video dell'array

L'output è il seguente


]
Esempio 3
# minimum dimensions
import numpy as np
a = np.array(, ndmin = 2)
print a

Le tre righe in sequenza esprimono:


- importazione della libreria numpy e definizione alias np
- definizione array a due dimensioni contenente cinque elementi in una sola riga, con specifica della multidimensionalità mediante parametro ndmin
- stampa a video dell'array

L'output è il seguente


]
Esempio 4
# dtype parameter
import numpy as np
a = np.array(, dtype = complex)
print a

L'output è il seguente ?


L'oggetto ndarray è costituito da un segmento unidimensionale contiguo di memoria del computer, combinato con uno schema di indicizzazione che mappa ogni elemento in una posizione nel blocco di memoria. Il blocco di memoria contiene gli elementi in un ordine principale (stile C) o in un ordine principale di colonna (stile FORTRAN o MatLab).


Tipi di Dati

NumPy supporta una varietà molto maggiore di tipi numerici rispetto a Python. La tabella seguente mostra diversi tipi di dati scalari definiti in NumPy.


Sr. No.Tipi & Descrizione dei dati1I bool Boolean (True o False) immagazzinato come byte2int Tipo intero predefinito (stesso a C lungo; normalmente int64 o int32)Il terzo- I Identico a C int (normalmente int32 o int64)Il 4intp Compimento utilizzato per l'indicizzazione (stesso di C ssize-t; normalmente int32 o int64)5int8 Byte (da 128 a 127)6- 1 caros16 Integer (-32768 a 32767)Il 7- il 32 di int Integer (-2147483648-21474847)8- int64 Integer (-92233720368545708 to 9223372036854775807)Il 9Uint8 I numeri interger non firmati (da 0 a 255)10Uint16 Non firmato intero (da 0 a 65535)11Uint32 Non firmato intero (0 a 4294967295)12Uint64 Non firmato intero (0 a 1844674407370915)13 anniil galleggiante Corrimano per float64Il 14Galleggiante 16 Mezzo galleggiante di precisione: segno bit, esponente a 5 bit, mantissa a 10 bit15 anniil galleggiante 32 Singolo carrinte di precisione: segno, esponente di 8 bit, mantissa a 23 bit16 anniil galleggiante del 64 Doppio carrinte di precisione: segno, 11 bit esponente, mantissa a 52 bit17 anniComplesso di un Cortometraggio per complesso12818Complesso di 64 Numero complesso, rappresentato da due carri float a 32 bit (componenti reali e immaginari)19 anniComplesso di 128 Numero complesso, rappresentato da due carri float a 64 bit (componenti reali e immaginari)

I tipi numerici NumPy sono istanze di oggetti dtype (tipo di dati), ognuno con caratteristiche univoche. I dtypes sono disponibili come np.bool, np.float32, ecc.


Tipo di dati Oggetti (dtype)

Un oggetto di tipo di dati descrive l'interpretazione del blocco fisso di memoria corrispondente a un array, a seconda degli aspetti seguenti


- Tipo di dati (oggetto intero, float o Python)
- La dimensione dei dati
- Perte di ordine (piccolo-endiano o grande-endian)
- In caso di tipo strutturato, i nomi dei campi, il tipo di dati di ciascun campo e parte del blocco di memoria prelevato da ciascun campo.
- Se il tipo di dati è una sottobarray, la sua forma e il tipo di dati

L'ordine di byte è deciso prefissando '' o ''' al tipo di dati. "" significa che la codifica è poco-endian (meno significativo è memorizzato nel più piccolo indirizzo). "" significa che la codifica è grande-endian (il byte più significativo è memorizzato nel più piccolo indirizzo).


Un oggetto dtype è costruito utilizzando la seguente sintassi


numpy.dtype(object, align, copy)

I parametri sono:


- Oggetto - Da convertire in oggetto tipo di dati
- Allinea - Se è vero, aggiunge l'imbottitura al campo per renderlo simile a C-struct
- Copia - Rende una nuova copia di oggetto dtype. Se falso, il risultato è il riferimento a un oggetto di tipo di dati incorporato
Esempio 1
# using array-scalar type
import numpy as np
dt = np.dtype(np.int32)
print dt

L'output è il seguente:


int32



Esempio 2
#int8, int16, int32, int64 can be replaced by equivalent string 'i1', 'i2','i4', etc.
import numpy as np
dt = np.dtype('i4')
print dt

L'output è il seguente:


int32
Esempio 3
# file name can be used to access content of age column
import numpy as np
dt = np.dtype()
a = np.array(, dtype = dt)
print a

L'output è il seguente:


Esempio 4
import numpy as np
student = np.dtype()
a = np.array(, dtype = student)
print a

L'output è il seguente:


Ogni tipo di dati incorporato ha un codice di carattere che lo identifica in modo univoco.


- 'b' ? booleano
- 'i' ? (firmato) intero
- 'u' ? non firmato intero
- 'f' ? in virgola mobile
- 'c' ? punto di complessa-galleggiante
- 'm' - timedelta
- 'M' ? datatime
- 'O' ? (Python) oggetti
- 'S', 'a' ? (byte-)string
- 'U' ? Unicode
- 'V' ? dati grezzi (voi)
Attributi di Array
ndarray.shape

Questo attributo array restituisce una tupla composta da dimensioni di matrice. Può anche essere usato per ridimensionare l'array.


Esempio 1
import numpy as np
a = np.array(,])
print a.shape

L'output è il seguente:


(2, 3)
Esempio 2
# this resizes the ndarray
import numpy as np
a = np.array(,])
a.shape = (3,2)
print a

L'output è il seguente:


]
ndarray.ndim

Questo attributo dell'array restituisce il numero di dimensioni dell'array.


Esempio 1
# an array of evenly spaced numbers
import numpy as np
a = np.arange(24)
print a

L'output è il seguente:


Esempio 2
# this is one dimensional array
import numpy as np
a = np.arange(24)
a.ndim
# now reshape it
b = a.reshape(2,4,3)
print b
# b is having three dimensions

L'output è il seguente:


]
]]
numpy.itemsize

Questo attributo dell'array restituisce la lunghezza di ciascun elemento dell'array in byte.


Esempio 1
# dtype of array is int8 (1 byte)
import numpy as np
x = np.array(, dtype = np.int8)
print x.itemsize

L'output è il seguente:


1
Esempio 2
# dtype of array is now float32 (4 bytes)
import numpy as np
x = np.array(, dtype = np.float32)
print x.itemsize

L'output è il seguente:


4
Rubintine di Creazione di Array
numpy.empty
Crea una matrice non inizializzata di forma specificata e dtype. Utilizza il seguente costruttore
numpy.empty(shape, dtype = float, order = 'C')

Il costruttore ha i seguenti parametri.


Sr. No.Parametro & Descrizione1La forma Forma di una matrice vuota int o tupla di int2Il tipo di tipo Tipo di dati di output desiderati. Opzionale di opzioneIl terzoOrdine di ordinazione 'C' per l'array di file di serie in stile C, 'F' per l'array di colonna-maggiore in stile FORTRAN
Esempio

Il codice seguente mostra un esempio di un array vuoto.


import numpy as np
x = np.empty(, dtype = int)
print x

L'output è il seguente:


]

Nota: gli elementi in un array mostrano valori casuali poiché non vengono inizializzati.


numpy.zeros

Restituisce una nuova gamma di dimensioni specificate, riempite con zeri.


numpy.zeros(shape, dtype = float, order = 'C')

Il costruttore prende i seguenti parametri.


Sr. No.Parametro & Descrizione1La forma Forma di una matrice vuota int o sequenza di int2Il tipo di tipo Tipo di dati di output desiderati. Opzionale di opzioneIl terzoOrdine di ordinazione 'C' per l'array di file di serie in stile C, 'F' per l'array di colonna-maggiore in stile FORTRAN
Esempio 1
# array of five zeros. Default dtype is float
import numpy as np
x = np.zeros(5)
print x

L'output è il seguente:


Esempio 2
# custom type
import numpy as np
x = np.zeros((2,2), dtype = )
print x

Dovrebbe produrre il seguente output


]
numpy.ones

Restituisce una nuova gamma di dimensioni e tipo specificate, riempito con quelle.


numpy.ones(shape, dtype = None, order = 'C')

Il costruttore prende i seguenti parametri.


Sr. No.Parametro & Descrizione1La forma Forma di una matrice vuota int o tupla di int2Il tipo di tipo Tipo di dati di output desiderati. Opzionale di opzioneIl terzoOrdine di ordinazione 'C' per l'array di file di serie in stile C, 'F' per l'array di colonna-maggiore in stile FORTRAN
Esempio 1
# array of five ones. Default dtype is float
import numpy as np
x = np.ones(5)
print x

L'output è il seguente:


Esempio 2
import numpy as np
x = np.ones(, dtype = int)
print x

Ora, l'output sarebbe il seguente:


]
Letture Correlate
- Apprendimento automatico: confronto tra Random Forest e albero decisionale
- Come funziona l’intelligenza artificiale (AI) e le sue applicazioni
-
https://bloginnovazione.it/numpy-python/48815/

Commenti

Post popolari in questo blog