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

Esempio per generare casuale Numbers utilizzando NumPy
Esempio per generare casuale Numbers utilizzando NumPy

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.