Python Tutorial NumPy per principianti: impara con gli esempi
In cosa consiste NumPy Python?
NumPy è una libreria open source disponibile in Python, che aiuta nella programmazione matematica, scientifica, ingegneristica e di data science. È una libreria molto utile per eseguire operazioni matematiche e statistiche in Python. Funziona perfettamente per array multidimensionali e moltiplicazione di matrici. È facile da integrare con C/C++ e di Fortran.
Per qualsiasi progetto scientifico, NumPy è lo strumento da conoscere. È stato costruito per funzionare con l'array N-dimensionale, l'algebra lineare, i numeri casuali, la trasformata di Fourier, ecc.
NumPy è un linguaggio di programmazione che si occupa di array e matrici multidimensionali. Oltre agli array e alle matrici, NumPy supporta un gran numero di operazioni matematiche. In questa parte esamineremo le funzioni essenziali che devi conoscere per il tutorial su 'TensorFlow. '
Perché usare NumPy?
NumPy è efficiente in termini di memoria, il che significa che può gestire un'enorme quantità di dati in modo più accessibile rispetto a qualsiasi altra libreria. Inoltre, è molto comodo lavorare con NumPy, soprattutto per la moltiplicazione e il rimodellamento delle matrici. Inoltre, NumPy è veloce. Infatti, TensorFlow e Scikit imparano a utilizzare l'array NumPy per calcolare la moltiplicazione della matrice nel back-end.
Come installare NumPy
Per installare la libreria NumPy, fare riferimento al nostro tutorial Come installare TensorFlow. NumPy è installato per impostazione predefinita con Anaconda.
In caso remoto, NumPy non installato-
Puoi installare NumPy usando Anaconda:
conda install -c anaconda numpy
- In Jupyter Taccuino :
import sys !conda install --yes --prefix {sys.prefix} numpy
Importa NumPy e controlla la versione
Il comando per importare numpy è:
import numpy as np
Il codice precedente rinomina lo spazio dei nomi Numpy in np. Ciò ci consente di prefissare la funzione, i metodi e gli attributi di Numpy con "np" invece di digitare "numpy". È la scorciatoia standard che troverai nella letteratura numpy
Per verificare la versione installata di NumPy, utilizza il comando seguente:
print (np.__version__)
Produzione:
1.18.0
Che cos'è la Python Array NumPy?
Gli array NumPy sono un po' come Python elenchi, ma allo stesso tempo molto diversi. Per chi di voi è nuovo all'argomento, chiariamo di cosa si tratta esattamente e a cosa serve.
Come suggerisce il nome, un array NumPy è una struttura dati centrale della libreria NumPy. Il nome della biblioteca è in realtà l'abbreviazione di “Numeric Python" o "Numero Python".
Creazione di un array NumPy
Il modo più semplice per creare un array in Numpy è utilizzare Python Lista
myPythonList = [1,9,8,3]
Per convertire l'elenco Python in un array numpy utilizzando l'oggetto np.array.
numpy_array_from_list = np.array(myPythonList)
Per visualizzare il contenuto dell'elenco
numpy_array_from_list
Produzione:
array([1, 9, 8, 3])
In pratica non è necessario dichiarare a Python Elenco. L'operazione può essere combinata.
a = np.array([1,9,8,3])
NOTA: La documentazione di Numpy afferma l'uso di np.ndarray per creare un array. Tuttavia, questo è il metodo consigliato.
Puoi anche creare un array Numpy da una tupla.
Matematico Operazioni su un array
È possibile eseguire operazioni matematiche come addizioni, sottrazioni, divisioni e moltiplicazioni su un array. La sintassi è il nome dell'array seguito dall'operazione (+.-,*,/) seguito dall'operando
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
Puoi controllare la forma dell'array con la forma dell'oggetto preceduta dal nome dell'array. Allo stesso modo, puoi controllare il tipo con dtypes.
import numpy as np a = np.array([1,2,3]) print(a.shape) print(a.dtype) (3,) int64
Un numero intero è un valore senza decimale. Se crei un array con decimal, il tipo cambierà in float.
#### Different type b = np.array([1.1,2.0,3.2]) print(b.dtype) float64
Serie a 2 dimensioni
Puoi aggiungere una dimensione con una “”, virgola
Tieni presente che deve essere compreso tra parentesi []
### 2 dimension c = np.array([(1,2,3), (4,5,6)]) print(c.shape) (2, 3)
Serie a 3 dimensioni
La dimensione superiore può essere costruita come segue:
### 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() o np.zeros Python La funzione viene utilizzata per creare una matrice piena di zeri. numpy.zeros() in Python può essere utilizzato quando inizializzi i pesi durante la prima iterazione in TensorFlow e altre attività statistiche.
Sintassi della funzione numpy.zeros()
numpy.zeros(shape, dtype=float, order='C')
Python numpy.zeros() Parametri
Qui,
- Forma: è la forma dell'array zero di Numpy
- tipo D: è il tipo di dati in zeri numpy. È facoltativo. Il valore predefinito è float64
- Ordine: L'impostazione predefinita è C che è uno stile di riga essenziale per numpy.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() viene utilizzato per creare una matrice piena di unità. numpy.ones() in Python può essere utilizzato quando inizializzi i pesi durante la prima iterazione in TensorFlow e altre attività statistiche.
Python numpy.ones() Sintassi
numpy.ones(shape, dtype=float, order='C')
Python numpy.ones() Parametri
Qui,
- Forma: è la forma degli np.one Python Italia
- tipo D: è il tipo di dati in numpy. È facoltativo. Il valore predefinito è float64
- Ordine: L'impostazione predefinita è C che è uno stile di riga essenziale.
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 la funzione viene utilizzata per modellare un array senza modificarne i dati. In alcune occasioni, potrebbe essere necessario rimodellare i dati da ampi a lunghi. A questo scopo è possibile utilizzare la funzione np.reshape.
Sintassi di np.reshape()
numpy.reshape(a, newShape, order='C')
Qui,
a: Array che desideri rimodellare
nuova forma: La nuova forma dei desideri
Ordine: L'impostazione predefinita è C che è uno stile di riga essenziale.
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 la funzione viene utilizzata per restituire una copia dell'array in una dimensione. Quando hai a che fare con una rete neurale come convnet, devi appiattire l'array. Puoi usare le funzioni np.flatten() per questo.
Sintassi di np.flatten()
numpy.flatten(order='C')
Qui,
Ordine: L'impostazione predefinita è C che è uno stile di riga essenziale.
Esempio di NumPy Flatten
e.flatten()
Produzione:
array([1, 2, 3, 4, 5, 6])
Cosa contiene numpy.hstack() Python?
Numpy.hstack è una funzione in Python che viene utilizzato per impilare orizzontalmente sequenze di array di input per creare un singolo array. Con la funzione hstack(), puoi aggiungere i dati orizzontalmente. È una funzione molto comoda in NumPy.
Studiamo hstack Python con un esempio:
Esempio:
## Horitzontal 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 è una funzione in Python che viene utilizzato per impilare verticalmente sequenze di array di input per creare un singolo array. Con la funzione vstack(), puoi aggiungere i dati verticalmente.
Studiamolo 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 e hstack, impariamo un esempio per generare numeri casuali in NumPy.
Genera casuale Numbers utilizzando NumPy
Per generare numeri casuali per la distribuzione gaussiana, utilizzare:
numpy.random.normal(loc, scale, size)
Qui,
- Loc: la media. Il centro di distribuzione
- Scala: deviazione standard.
- Taglia: numero di resi
Esempio:
## Generate random nmber from 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 tracciata, la distribuzione sarà simile al grafico seguente
Funzione NumPy Asarray
La funzione asarray() viene utilizzata quando si desidera convertire un input in un array. L'input potrebbe essere un elenco, una tupla, un ndarray, ecc.
Sintassi:
numpy.asarray(data, dtype=None, order=None)[source]
Qui,
dati: dati che si desidera convertire in un array
tipo d: Questo è un argomento facoltativo. Se non specificato, il tipo di dati viene dedotto dai dati di input
Ordine: L'impostazione predefinita è C che è uno stile di riga essenziale. Un'altra opzione è F (stile Fortan)
Esempio:
Considera la seguente matrice 2D con quattro righe e quattro colonne riempite con 1
import numpy as np A = np.matrix(np.ones((4,4)))
Se vuoi cambiare il valore della matrice, non puoi. Il motivo è che non è possibile modificare una copia.
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 è immutabile. Puoi usare asarray se vuoi aggiungere modifiche all'array originale. Vediamo se si verifica qualche cambiamento quando si desidera modificare il valore della terza riga con il valore 2.
np.asarray(A)[2]=2 print(A)
Spiegazione del codice:
np.asarray(A): converte la matrice A in un 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 numpy incorporata che restituisce un oggetto ndarray contenente valori equidistanti entro un intervallo definito. Ad esempio, vuoi creare valori da 1 a 10; puoi usare np.arange() in Python funzione.
Sintassi:
numpy.arange(start, stop, step, dtype)
Python NumPy parametri arange:
- Inizia: Inizio dell'intervallo per np.arange in Python funzione.
- Fermare: Fine dell'intervallo.
- step: Spaziatura tra i valori. Il passaggio predefinito è 1.
- tipo D: è un tipo di output di array per NumPy arange in Python.
Esempio:
import numpy np np.arange(1, 11)
Produzione:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Esempio:
Se vuoi cambiare il passaggio in questa funzione NumPy arange in Python ad esempio, puoi aggiungere un terzo numero tra parentesi. Cambierà il passo.
import numpy np np.arange(1, 14, 4)
Produzione:
array([ 1, 5, 9, 13])
Funzione Linspace NumPy
Linspace fornisce campioni equidistanti.
Sintassi:
numpy.linspace(start, stop, num, endpoint)
Qui,
- Inizia: Valore iniziale della sequenza
- Fermare: Valore finale della sequenza
- In: Numero di campioni da generare. L'impostazione predefinita è 50
- endpoint: Se True (impostazione predefinita), stop è l'ultimo valore. Se False, il valore di arresto non è incluso.
Esempio:
Ad esempio, può essere utilizzato per creare 10 valori da 1 a 5 equidistanti.
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 desideri includere l'ultima cifra nell'intervallo, puoi impostare endpoint su 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 pari su una scala logaritmica. Logspace ha 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 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
L'affettatura dei dati è banale con Numpy. Affetteremo la matrice “e”. Da notare che, a Python, è necessario utilizzare le parentesi per restituire le righe o le 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 con Numpy il primo array/colonna inizia da 0.
## First column print('First row:', e[0]) ## Second col print('Second row:', e[1])
Produzione:
First row: [1 2 3] Second row: [4 5 6]
In Python, come molte altre lingue,
- I valori prima della virgola rappresentano le righe
- Il valore sui diritti rappresenta le colonne.
- Se vuoi selezionare una colonna, devi aggiungere : prima dell'indice della colonna.
- : significa che vuoi tutte le righe dalla colonna selezionata.
print('Second column:', e[:,1])
Second column: [2 5]
Per restituire i primi due valori della seconda riga. Si utilizza : per selezionare tutte le colonne fino alla seconda
## Second Row, two values print(e[1, :2]) [4 5]
Funzioni statistiche in Python
NumPy ha alcune funzioni statistiche utili per trovare la deviazione standard e la varianza minima, massima, percentile, ecc. dagli elementi specificati nell'array. Le funzioni sono spiegate come segue −
Numpy è dotato della robusta funzione statistica elencata di seguito
Funzione | numpy |
---|---|
Min | np.min() |
Max | np.max() |
Significare | np.media() |
Mediano | np.mediana() |
Deviazione standard | np.std() |
Considera la seguente matrice:
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 funzione statistica 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?
Prodotto Numpy.dot è una potente libreria per il calcolo di matrici. Ad esempio, puoi calcolare il prodotto scalare con np.dot. Il prodotto Numpy.dot è il prodotto scalare di a e b. numpy.dot() in Python gestisce gli array 2D ed esegue moltiplicazioni di matrici.
Sintassi:
numpy.dot(x, y, out=None)
parametri
Qui,
x, y: array di input. x e y dovrebbero essere entrambi 1-D o 2-D affinché la funzione np.dot() funzioni
su: Questo è l'argomento di output per l'array scalare 1-D da restituire. Altrimenti ndarray dovrebbe essere restituito.
Reso
La funzione numpy.dot() in Python restituisce un prodotto scalare di due array x e y. La funzione dot() restituisce uno scalare se sia x che y sono 1-D; altrimenti, restituisce un array. Se viene specificato 'out', viene restituito.
Aumenta
Prodotto punto dentro Python solleva un'eccezione ValueError se l'ultima dimensione di x non ha la stessa dimensione della 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
La funzione Numpy matmul() viene utilizzata per restituire il prodotto matrice di 2 array. Ecco come funziona
1) Array 2-D, restituisce il prodotto normale
2) Dimensioni > 2, il prodotto viene trattato come una pila di matrice
3) L'array 1-D viene prima promosso a matrice, quindi viene calcolato il prodotto
Sintassi:
numpy.matmul(x, y, out=None)
Qui,
x, y: array di input. scalari non consentiti
su: Questo è un parametro facoltativo. Di solito l'output viene archiviato in ndarray
Esempio:
Allo stesso modo, puoi calcolare la moltiplicazione delle matrici con np.matmul
### Matmul: matruc 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
Ultimo ma non meno importante, se devi calcolare il determinante, puoi usare np.linalg.det(). Nota che Numpy si prende cura della dimensione.
Esempio:
## Determinant 2*2 matrix ### 5*8-7*6np.linalg.det(i)
Produzione:
-2.000000000000005
Sommario
- Python è una libreria open source disponibile in Python, che aiuta in matematica, scienza, ingegneria e programmazione della scienza dei dati.
- numpy.zeros() o np.zeros Python La funzione viene utilizzata per creare una matrice piena di zeri.
- numpy.ones() in Python può essere utilizzato quando inizializzi i pesi durante la prima iterazione in TensorFlow e altre attività statistiche.
- Python La funzione NumPy Reshape viene utilizzata per modellare un array senza modificarne i dati.
- Python La funzione NumPy Flatten viene utilizzata per restituire una copia dell'array in una dimensione.
- Numpy.hstack è una funzione in Python che viene utilizzato per impilare orizzontalmente sequenze di array di input per creare un singolo array.
- Numpy.vstack è una funzione in Python che viene utilizzato per impilare verticalmente sequenze di array di input per creare un singolo array.
- numpy.arange() è una funzione numpy incorporata che restituisce un oggetto ndarray contenente valori equidistanti entro un intervallo definito.
- Il prodotto Numpy.dot è una potente libreria per il calcolo delle matrici.
- La funzione Numpy matmul() viene utilizzata per restituire il prodotto matrice di 2 array.