Python Tutorial di NumPy per principianti
⚡ Riepilogo intelligente
NumPy è il fondamento Python libreria per il calcolo numerico, che alimenta array, matrici, algebra lineare e campionamento casuale. Questo tutorial NumPy illustra l'installazione, la creazione di array, la rielaborazioneping, slicing, statistica e matematica matriciale con eseguibile Python esempi.

In cosa consiste NumPy Python?
NumPy è un open source Python libreria per la programmazione matematica, scientifica, ingegneristica e di scienza dei dati. È una libreria molto utile per le operazioni matematiche e statistiche in Python. Funziona perfettamente con array multidimensionali e moltiplicazione di matrici e si integra facilmente con C/C++ and Fortran.
Per qualsiasi progetto scientifico, NumPy è lo strumento indispensabile. È stato creato per gestire array N-dimensionali, algebra lineare, generazione di numeri casuali, trasformate di Fourier e molto altro.
NumPy fornisce Python supporto di prima classe per array e matrici multidimensionali, oltre a un ampio set di operazioni matematiche che agiscono su di essi. In questa guida, esamineremo le funzioni essenziali che è necessario conoscere prima di passare al tutorial su 'TensorFlow. '
Perché usare NumPy?
NumPy è efficiente in termini di memoria, quindi può gestire grandi volumi di dati numerici più facilmente rispetto ai metodi puri Python liste. È anche molto comodo per la moltiplicazione di matrici e rimodellamentoping, ed è veloce perché il lavoro pesante è delegato a routine C compilate. Infatti, librerie come TensorFlow, PyTorch e Scikit-learn si affidano agli array NumPy per i calcoli matriciali nel loro back-end, il che rende NumPy il motore silenzioso e fondamentale della maggior parte dei moderni flussi di lavoro di data science e intelligenza artificiale.
Come installare NumPy
Per installare la libreria NumPy, fare riferimento al nostro tutorial. Come installare TensorFlow. NumPy è installato per impostazione predefinita con Anaconda.
Nel raro caso in cui NumPy non sia installato, utilizzare una delle opzioni seguenti.
Puoi installare NumPy usando Anaconda:
conda install -c anaconda numpy
- In Jupyter Notebook:
import sys
!conda install --yes --prefix {sys.prefix} numpy
Gli utenti di Pip possono installare o aggiornare con un singolo comando:
pip install --upgrade numpy
Importa NumPy e controlla la versione
Il comando per importare numpy è:
import numpy as np
La riga sopra rinomina lo spazio dei nomi NumPy in np. Questa scorciatoia consente di anteporre alle funzioni, ai metodi e agli attributi NumPy il prefisso np. invece di grazieping numpy.e questa è la convenzione standard che troverete in tutto l'ecosistema NumPy.
Per verificare la versione di NumPy installata, utilizzare il comando seguente:
print(np.__version__)
Produzione:
2.1.3
NumPy 2.0 è stato rilasciato a giugno 2024 ed è l'attuale serie principale stabile. Se il tuo progetto dipende ancora dall'API 1.x, blocca a numpy<2 nel tuo file dei requisiti perché alcuni alias legacy come np.float sono stati rimossi nella versione 2.0.
Che cos'è un Python Array NumPy?
Gli array NumPy assomigliano un po' a Python A prima vista sembrano liste, ma si comportano in modo molto diverso. Per i lettori che non hanno familiarità con l'argomento, chiariamo cos'è un ndarray e perché è importante.
Come suggerisce il nome, un array NumPy è la struttura dati centrale della libreria NumPy. Il nome stesso è l'abbreviazione di "Numerico Python" o "Numero Python", e l'ndarray è un blocco di memoria omogeneo di dimensioni fisse con una forma e un tipo di dati noti.
Creazione di un array NumPy
Il modo più semplice per creare un array in NumPy è partire da un Python Lista.
myPythonList = [1,9,8,3]
Convertire il Python elenco in un array NumPy utilizzando np.array.
numpy_array_from_list = np.array(myPythonList)
Visualizza il contenuto dell'array.
numpy_array_from_list
Produzione:
array([1, 9, 8, 3])
In pratica non è necessario dichiarare a Python Elenca prima. I due passaggi possono essere combinati.
a = np.array([1,9,8,3])
NOTA: La documentazione di NumPy menziona anche np.ndarray, ma np.array è la funzione di fabbrica consigliata per l'uso quotidiano.
Allo stesso modo è possibile creare un array NumPy a partire da una tupla.
Matematico Operazioni su un array
È possibile eseguire operazioni matematiche come addizione, sottrazionetracdivisione e moltiplicazione su un array. La sintassi è il nome dell'array, seguito dall'operatore (+, -, *, /), seguito dall'operando. Queste operazioni sono vettorializzate, il che significa che NumPy le applica a ogni elemento senza un esplicito Python ciclo continuo.
Esempio:
numpy_array_from_list + 10
Produzione:
array([11, 19, 18, 13])
Questa operazione aggiunge 10 a ciascun elemento dell'array NumPy.
Forma della matrice
È possibile controllare la forma di un array con il shape attributo, accessibile aggiungendolo al nome dell'array. Allo stesso modo, puoi controllare il tipo con dtype.
import numpy as np a = np.array([1,2,3]) print(a.shape) print(a.dtype) (3,) int64
Un numero intero è un valore senza virgola decimale. Se si crea un array con numeri decimali, il tipo di dati cambia in float.
#### Different type b = np.array([1.1,2.0,3.2]) print(b.dtype) float64
Serie a 2 dimensioni
È possibile aggiungere una dimensione inserendo una virgola tra parentesi.
Si noti che le tuple interne devono essere racchiuse tra parentesi esterne. [].
### 2 dimension c = np.array([(1,2,3), (4,5,6)]) print(c.shape) (2, 3)
Serie a 3 dimensioni
Dimensioni maggiori possono essere realizzate allo stesso modo.
### 3 dimension d = np.array([ [[1, 2,3], [4, 5, 6]], [[7, 8,9], [10, 11, 12]] ]) print(d.shape) (2, 2, 3)
| Obiettivo | Code |
|---|---|
| Crea matrice | matrice([1,2,3]) |
| stampare la forma | array([.]).forma |
Cos'è numpy.zeros()?
numpy.zeros() or np.zeros è un Python funzione utilizzata per creare una matrice riempita di zeri. numpy.zeros() È utile quando è necessario inizializzare i pesi durante la prima iterazione in TensorFlow o impostare buffer di segnaposto per altre attività statistiche.
Sintassi della funzione numpy.zeros()
numpy.zeros(shape, dtype=float, order='C')
Python numpy.zeros() Parametri
Qui,
- Forma: forma dell'array di zeri NumPy.
- tipo D: tipo di dati degli elementi. È facoltativo e il valore predefinito è
float64. - Ordine: predefinito è
C, che è il layout row-major utilizzato danumpy.zeros()in Python.
Python numpy.zeros() Esempio
import numpy as np np.zeros((2,2))
Produzione:
array([[0., 0.], [0., 0.]])
Esempio di numpy zero con Datatype
import numpy as np np.zeros((2,2), dtype=np.int16)
Produzione:
array([[0, 0], [0, 0]], dtype=int16)
Cos'è numpy.ones()?
funzione np.ones() crea una matrice riempita di uno. numpy.ones() in Python è utile quando si inizializzano i pesi durante la prima iterazione in TensorFlow e per altre attività statistiche.
Python numpy.ones() Sintassi
numpy.ones(shape, dtype=float, order='C')
Python numpy.ones() Parametri
Qui,
- Forma: forma degli np.ones Python Italia.
- tipo D: tipo di dati degli elementi. È facoltativo e il valore predefinito è
float64. - Ordine: predefinito è
C, che è il layout per righe.
Python numpy.ones() Array 2D con esempio di tipo di dati
import numpy as np np.ones((1,2,3), dtype=np.int16)
Produzione:
array([[[1, 1, 1], [1, 1, 1]]], dtype=int16)
funzione numpy.reshape() in Python
Python NumPy Rimodella cambia la forma di un array senza modificarne i dati. Potrebbe essere necessario rimodellare i dati dal formato ampio a quello lungo, oppure passare da un vettore 1D a una matrice 2D prima di alimentarli a un modello. np.reshape La funzione gestisce questo con una sola chiamata.
Sintassi di np.reshape()
numpy.reshape(a, newShape, order='C')
Qui,
a: array che si desidera rimodellare.
nuova forma: la nuova forma desiderata.
Ordine: predefinito è C, la disposizione per righe.
Esempio di rimodellamento di NumPy
import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) e.reshape(3,2)
Produzione:
// Before reshape [[1 2 3] [4 5 6]]
//After Reshape array([[1, 2], [3, 4], [5, 6]])
numpy.flatten() in Python
Python NumPy Appiattisci restituisce una copia dell'array collassato in una dimensione. Quando si lavora con reti neurali come le convnet, spesso è necessario appiattire un tensore immagine prima di passarlo a un livello denso. np.flatten() La funzione gestisce questo con una singola chiamata.
Sintassi di np.flatten()
numpy.flatten(order='C')
Qui,
Ordine: predefinito è C, la disposizione per righe.
Esempio di NumPy Flatten
e.flatten()
Produzione:
array([1, 2, 3, 4, 5, 6])
Cosa contiene numpy.hstack() Python?
numpy.hstack è un Python funzione utilizzata per impilare orizzontalmente sequenze di array di input in un singolo array. Con hstack()In questo modo, si aggiungono dati lungo l'asse delle colonne. È una funzione molto utile in NumPy quando è necessario unire vettori di caratteristiche affiancati.
Studiamo hstack in Python con un esempio.
Esempio:
## Horizontal Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Horizontal Append:', np.hstack((f, g)))
Produzione:
Horizontal Append: [1 2 3 4 5 6]
Cosa contiene numpy.vstack() Python?
numpy.vstack è un Python funzione utilizzata per impilare verticalmente sequenze di array di input in un singolo array. Con vstack(), si aggiungono dati lungo l'asse delle righe, il che è utile quando si desidera combinare lotti di campioni.
Analizziamolo con un esempio.
Esempio:
## Vertical Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Vertical Append:', np.vstack((f, g)))
Produzione:
Vertical Append: [[1 2 3] [4 5 6]]
Dopo aver studiato NumPy vstack and hstackVediamo un esempio di generazione di numeri casuali in NumPy.
Genera casuale Numbers utilizzando NumPy
Per generare numeri casuali da una distribuzione gaussiana, utilizzare:
numpy.random.normal(loc, scale, size)
Qui,
- Loc: la media. Il centro della distribuzione.
- Scala: la deviazione standard.
- Taglia: numero di campioni restituiti.
Esempio:
## Generate random numbers from a normal distribution normal_array = np.random.normal(5, 0.5, 10) print(normal_array) [5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Se rappresentata graficamente, la distribuzione risulta simile al grafico seguente.

Si noti che il codice più recente utilizza sempre più l'API del generatore moderno, np.random.default_rng(), che è il sostituto consigliato per il vecchio np.random.normal chiamate in NumPy 2.x.
Funzione NumPy Asarray
Migliori asarray() Questa funzione converte un input in un array. L'input può essere una lista, una tupla, un ndarray o una sequenza simile.
Sintassi:
numpy.asarray(data, dtype=None, order=None)
Qui,
dati: dati che si desidera convertire in un array.
tipo d: facoltativo. Se non specificato, il tipo di dati viene dedotto dai dati di input.
Ordine: predefinito è C, il layout per righe. L'altra opzione è F (Fortra(formato colonna in stile n).
Esempio:
Si consideri la seguente matrice 2D con quattro righe e quattro colonne, riempita con 1.
import numpy as np A = np.matrix(np.ones((4,4)))
Se si tenta di modificare un valore nella matrice tramite np.array, l'originale non è modificato. Il motivo è che np.array crea una copia della matrice.
np.array(A)[2]=2 print(A) [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
La matrice rimane invariata. Utilizzare asarray quando si desidera modificare l'array originale direttamente sul posto. Vediamo cosa succede quando si imposta la terza riga al valore 2.
np.asarray(A)[2]=2 print(A)
Code Spiegazione:
np.asarray(A) converte la matrice A in una vista array.
[2] seleziona la terza riga.
Produzione:
[[1. 1. 1. 1.] [1. 1. 1. 1.] [2. 2. 2. 2.] # new value [1. 1. 1. 1.]]
Cos'è numpy.arange()?
numpy.arange() è una funzione integrata di NumPy che restituisce un ndarray contenente valori equamente spaziati all'interno di un intervallo definito. Ad esempio, per creare valori da 1 a 10, è possibile chiamare np.arange() in Python.
Sintassi:
numpy.arange(start, stop, step, dtype)
Python NumPy parametri arange:
- Inizio: inizio dell'intervallo per
np.arangein Python. - Fermare: fine dell'intervallo.
- step: spaziatura tra i valori. Il passo predefinito è 1.
- tipo D: tipo dell'array di output per NumPy
arange.
Esempio:
import numpy as np np.arange(1, 11)
Produzione:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Esempio:
Per modificare il passaggio in questo NumPy arange Ad esempio, aggiungi un terzo numero tra parentesi. Questo modifica la dimensione del passo.
import numpy as np np.arange(1, 14, 4)
Produzione:
array([ 1, 5, 9, 13])
Funzione Linspace NumPy
linspace restituisce campioni equamente spaziati tra due punti estremi.
Sintassi:
numpy.linspace(start, stop, num, endpoint)
Qui,
- Inizio: valore iniziale della sequenza.
- Fermare: valore finale della sequenza.
- In: numero di campioni da generare. Il valore predefinito è 50.
- endpoint: Se
True(Impostazione predefinita),stopè l'ultimo valore. SeFalse,stopnon è incluso.
Esempio:
Ad esempio, può essere utilizzato per creare 10 valori equamente spaziati da 1 a 5.
import numpy as np np.linspace(1.0, 5.0, num=10)
Produzione:
array([1. , 1.44444444, 1.88888889, 2.33333333, 2.77777778, 3.22222222, 3.66666667, 4.11111111, 4.55555556, 5. ])
Se non si desidera includere l'ultima cifra nell'intervallo, impostare endpoint a False.
np.linspace(1.0, 5.0, num=5, endpoint=False)
Produzione:
array([1. , 1.8, 2.6, 3.4, 4.2])
Funzione NumPy LogSpace in Python
logspace restituisce numeri equamente spaziati su una scala logaritmica. logspace condivide gli stessi parametri di np.linspace.
Sintassi:
numpy.logspace(start, stop, num, endpoint)
Esempio:
np.logspace(3.0, 4.0, num=4)
Produzione:
array([ 1000. , 2154.43469003, 4641.58883361, 10000. ])
Infine, se vuoi controllare la dimensione della memoria di un singolo elemento in un array, puoi usare itemsize.
x = np.array([1,2,3], dtype=np.complex128) x.itemsize
Produzione:
16
Ogni elemento occupa 16 byte.
Indicizzazione e suddivisione Python
Con NumPy, suddividere i dati in sezioni è semplice. Suddivideremo la matrice e. in Python, si usano le parentesi quadre per restituire righe o colonne.
Esempio:
## Slice import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) [[1 2 3] [4 5 6]]
Ricorda che in NumPy il primo indice dell'array inizia da 0.
## First row print('First row:', e[0]) ## Second row print('Second row:', e[1])
Produzione:
First row: [1 2 3] Second row: [4 5 6]
In Python, come in molte altre lingue,
- Il valore prima della virgola indica il numero di righe.
- Il valore dopo la virgola indica il numero di colonne.
- Se vuoi selezionare una colonna, aggiungi
:prima dell'indice di colonna. :significa che si desiderano tutte le righe della colonna selezionata.
print('Second column:', e[:,1])
Second column: [2 5]
Per restituire i primi due valori della seconda riga, utilizzare : per selezionare tutte le colonne fino al secondo indice.
## Second Row, two values print(e[1, :2]) [4 5]
Funzioni statistiche in Python
NumPy offre un utile set di funzioni statistiche per trovare il minimo, il massimo, il percentile, la deviazione standard, la varianza e altro ancora da un dato array. Le più comuni sono elencate di seguito.
NumPy include potenti strumenti di supporto statistico, riassunti nella tabella.
| Funzione | numpy |
|---|---|
| Min | np.min() |
| Max | np.max() |
| Significare | np.media() |
| Mediano | np.mediana() |
| Deviazione standard | np.std() |
Si consideri il seguente array:
Esempio:
import numpy as np normal_array = np.random.normal(5, 0.5, 10) print(normal_array)
Produzione:
[5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Esempio di funzioni statistiche NumPy
### Min print(np.min(normal_array)) ### Max print(np.max(normal_array)) ### Mean print(np.mean(normal_array)) ### Median print(np.median(normal_array)) ### Sd print(np.std(normal_array))
Produzione:
4.467042435266913 5.612113171990201 4.934841002270593 4.846995625786663 0.3875019367395316
Cos'è il prodotto punto Numpy?
numpy.dot è una potente funzione per il calcolo matriciale. Ad esempio, è possibile calcolare il prodotto scalare con np.dot. numpy.dot restituisce il prodotto scalare di a and be gestisce array sia 1D che 2D. Per input 2D esegue la moltiplicazione di matrici.
Sintassi:
numpy.dot(x, y, out=None)
Scheda Sintetica
Qui,
x, y: array di input. x and y entrambi dovrebbero essere 1D o 2D per np.dot() per funzionare come un prodotto scalare o una moltiplicazione di matrici.
su: argomento di output opzionale utilizzato per acquisire il risultato. Altrimenti, viene restituito un ndarray.
Resi
La funzione numpy.dot() restituisce il prodotto scalare di due array x and y. Restituisce uno scalare quando entrambi sono 1D, altrimenti restituisce un array. Se out se viene fornito, viene restituito quell'array.
Aumenta
Il prodotto scalare in Python solleva un ValueError se l'ultima dimensione di x non corrisponde alla penultima dimensione di y.
Esempio:
## Linear algebra ### Dot product: product of two arrays f = np.array([1,2]) g = np.array([4,5]) ### 1*4+2*5 np.dot(f, g)
Produzione:
14
Moltiplicazione di matrici in Python
Il NumPy matmul() Questa funzione restituisce il prodotto matriciale di due array. Ecco come funziona.
1) Per gli array bidimensionali, restituisce il normale prodotto matriciale.
2) Per dimensioni maggiori di 2, il prodotto viene trattato come una pila di matrici.
3) Un array 1D viene prima convertito in una matrice, quindi viene calcolato il prodotto.
L'infisso @ operatore, disponibile da Python 3.5 è l'abbreviazione di matmul ed è ampiamente utilizzato nel codice moderno.
Sintassi:
numpy.matmul(x, y, out=None)
Qui,
x, y: array di input. Non sono ammessi valori scalari.
su: parametro opzionale. Solitamente l'output viene memorizzato in un ndarray.
Esempio:
Allo stesso modo, è possibile calcolare la moltiplicazione di matrici con np.matmul.
### Matmul: matrix product of two arrays h = [[1,2],[3,4]] i = [[5,6],[7,8]] ### 1*5+2*7 = 19 np.matmul(h, i)
Produzione:
array([[19, 22], [43, 50]])
determinante
Se devi calcolare il determinante di una matrice, usa np.linalg.det()NumPy si occupa automaticamente delle dimensioni.
Esempio:
## Determinant 2*2 matrix ### 5*8-7*6 np.linalg.det(i)
Produzione:
-2.000000000000005
NumPy Broadcasting spiegato
Il broadcasting è la regola che permette a NumPy di eseguire operazioni aritmetiche su array di forme diverse senza copiare i dati. Quando si aggiunge uno scalare a un vettore 1D, o un vettore 1D a una matrice 2D, NumPy estende l'operando più piccolo lungo gli assi mancanti in modo che le forme si allineino. Questo evita operazioni esplicite. Python i cicli e questo è uno dei motivi principali per cui il codice NumPy risulta veloce e conciso.
Due forme sono compatibili per la trasmissione quando, confrontate da destra a sinistra, ogni coppia di dimensioni è uguale o una di esse è uguale a 1. Ad esempio, una matrice di forma (3, 4) trasmissioni contro una fila di forme (4,) o una colonna di forma (3, 1). La stessa logica alimenta la normalizzazione nell'apprendimento automatico, dove si sostituiscetracun vettore medio per caratteristica da un batch di campioni in una singola riga. Il broadcasting è anche il modello concettuale utilizzato da librerie tensoriali come PyTorch, TensorFlow e JAX, quindi le regole che imparerai qui si applicano direttamente al codice GPU.
Come NumPy potenzia l'intelligenza artificiale e l'apprendimento automatico
NumPy è alla base di quasi ogni moderno Python Stack AI.PyTorI tensori ch, i tensori eager di TensorFlow e gli array JAX espongono le stesse funzionalità di broadcasting, slicing e reshaping API che hai imparato sugli ndarray di NumPy. Molti tutorial utilizzano ancora array NumPy pre-elaborati nei cicli di addestramento dei modelli e i framework li accettano senza alcuna conversione.
Tre esempi concreti mostrano come NumPy si integri oggi nel lavoro sull'IA. In primo luogo, gli ingegneri dei dati trasformano le caratteristiche grezze in array NumPy prima di passarle alle pipeline di scikit-learn o ai dataset di Hugging Face. In secondo luogo, i ricercatori utilizzano NumPy come base di riferimento per la CPU e poi passano a CuPy, che offre un'API quasi identica ma viene eseguito su GPU NVIDIA tramite CUDA. In terzo luogo, JAX si basa sull'API NumPy per aggiungere differenziazione automatica e compilazione just-in-time, in modo che lo stesso codice che viene eseguito sul laptop possa essere eseguito su TPU nel cloud. Il punto chiave è che le competenze sugli array acquisite con NumPy sono applicabili a tutti i principali toolkit di deep learning, il che rende questo tutorial un utile passo nel percorso verso lo sviluppo dell'IA.
