Foglio di NumPy
Quindi hai bisogno di una rapida occhiata a NumPy che ti faccia lavorare sul campo? Questo articolo è proprio ciò di cui hai bisogno!

Iniziare
NumPy è un pacchetto di calcolo scientifico in Python. Viene fornito con funzioni predefinite per algebra lineare, trasformata di Fourier e matrici. NumPy è generalmente utilizzato per applicazioni di Data Science.
Per iniziare, assicurati innanzitutto di avere Python e NumPy nel tuo sistema. Il modo in cui lo ottieni dipende dal tuo sistema e dall'IDE che preferisci, ma io raccomando Anaconda. Con l'installazione di base di Anaconda puoi semplicemente andare al terminale ed eseguire "conda install numpy" e voilà!
Ora, creiamo un file example.py con cui iniziare a lavorare.
Nota: se dovessimo creare un progetto invece di un singolo file di esempio con cui lavorare, dovremmo semplicemente creare una directory e un file __init__.py al suo interno.
Dovresti aggiungere la seguente riga all'inizio del file per poter lavorare con NumPy all'interno del file.
importa numpy come np
Nota: generalmente lo importiamo come np in modo da non dover digitare numpy ogni volta che chiamiamo una funzione da NumPy. Tieni presente che sebbene possa essere modificato, np è la convenzione generale.
Successivamente, puoi eseguire il codice all'interno del file di esempio semplicemente andando al terminale ed eseguendo il comando:
python esempio.py
Lista vs Array
Useremo molto gli Array con le nostre operazioni NumPy, quindi è meglio chiarire una cosa: elenchi e array sono diversi in Python.
Con Arrays puoi dichiarare strutture multidimensionali come matrici e puoi eseguire operazioni numeriche all'interno, ma non è il caso delle semplici vecchie liste. Quindi, NumPy fa molto affidamento sugli array.
Le liste possono essere assegnate a un valore senza dover essere dichiarate, ma le matrici no. Quindi per definire un array devi fare come:
exampleArray = np.arrray([10, 15, 20]) // array monodimensionale
Oppure puoi definire un array multidimensionale come:
esempioArray2 = np.array([10, 15, 20], [50, 100, 150], [1, 2, 3])
Puoi chiamare gli elementi all'interno dell'array come:
esempioArray2 [1] // restituisce [50, 100, 150]
exampleArray2 [1] [0]// restituisce 50
Metodi
Di seguito, troverai le funzioni di base che vengono comunemente utilizzate quando si lavora con NumPy. Anche se ce ne sono molti, molti di più quanto segue sarà sufficiente per iniziare.
Metodi di creazione di array
- np.arange(0, 10): crea un array unidimensionale con i numeri da 0 a 9 come elementi.
- np.arange(0, 10, 3): crea un array unidimensionale con numeri compresi tra 0 e 10 che saltano a ogni terzo. Restituisce un array con 0,3,6,9 come elementi.
- np.zeros(3): crea un array di 3 elementi con il valore 0 per ogni elemento.
- np.ones(3): crea un array di 3 elementi con il valore 1 per ciascun elemento.
- np.linspace(0,20,5): accetta 5 numeri compresi tra 0 e 20 con passaggi uguali nel mezzo. Restituisce un array di elementi 0, 5, 10, 15, 20. Tieni presente che se abbiamo detto di selezionare 6 elementi, gli elementi sarebbero float anziché interfer per garantire uno spazio uguale nel mezzo.
- np.eye(3): Crea una matrice identità con 3 colonne e 3 righe. I valori diagonali restituiscono tutti 1 e tutti gli altri valori restituiscono 0.
- np.random.randn(5): crea un array unidimensionale con 5 numeri casuali come elementi. I numeri possono essere di tipo intero e/o float, negativi e/o positivi.
- np.random.randn(5,5): crea una matrice con 5 righe e 5 colonne con 25 valori casuali come elementi.
- np.random.randint(1, 10, 2): restituisce due numeri casuali maggiori di 1 e minori di 10.
- myArray.reshape(5,5): prende l'array unidimensionale denominato myArray e lo restituisce come matrice con 5 righe e 5 colonne. Tieni presente che se non è presente un numero sufficiente di elementi all'interno dell'array, nel caso di esempio 5 x 5 = 25 elementi, questo genererà un errore e non funzionerà. Questo metodo non cambierà l'array stesso ma restituirà semplicemente una versione modificata dell'array.
- myArray.max(): restituisce il numero più grande all'interno degli elementi di un array numerico.
- myArray.min(): restituisce il numero più piccolo all'interno degli elementi di un array numerico.
- myArray.argmax(): restituisce l'indice del numero più grande all'interno degli elementi di un array numerico.
- myArray.argmin(): restituisce l'indice del numero più piccolo all'interno degli elementi di un array numerico.
- myArray.shape: restituisce la forma di un array. Se l'array è di dimensione singola con 10 elementi, restituirà (10, ). Se l'array è una matrice composta da 5 colonne e 6 righe, restituirà (5,6). Tieni presente che questa non è una funzione ma piuttosto un attributo quindi non ci sono parentesi quando chiami shape.
- myArray[5]: restituisce l'elemento dall'array con il numero di indice 5
- myArray[3:5]: restituisce gli elementi compresi tra i numeri di indice 3 e 5, incluso l'elemento con indice 3 ma escluso 5.
- myArray[3:5] = -3: modifica il valore degli elementi tra gli indici 3 e cinque in -3.
- myArray[:] = 30: modifica il valore di tutti gli elementi all'interno dell'array in 30uno per uno.
- myArray = 30: cambia il tipo di myArray da array a numero intero e ne imposta il valore su 30.
- newArray = myArray.copy(): crea una copia di myArray e la imposta su newArray. Si noti che se non si utilizza il metodo .copy(), si vedranno tutte le modifiche apportate a newArray riflettersi anche su myArray.
Dichiariamo una matrice come myMatrix = ( [5, 10, 15] , [1, 2, 3] , [0, 0, 0] ).
- myMatrix[0]: restituisce l'elemento con l'indice di riga 0, che è un array. Pertanto restituisce [5, 10, 15].
- myMatrix[0] [1]: Restituisce l'elemento con l'indice di colonna 1 e l'indice di riga 0, quindi in questo caso restituisce il valore 10.
- myMatrix[0,1]: Restituisce l'elemento con l'indice di colonna 1 e l'indice di riga 0, quindi in questo caso restituisce il valore 10.
- myMatrix[1, 1:]: prende la riga con indice 1 come al solito, ma restituisce gli elementi con gli indici di colonna a partire da 1 (incluso 1 poiché lo splice funziona sempre con Python) quindi in questo caso restituisce [2, 3].
- myMatrix[ [0,1] ]: Restituisce il valore degli indici 0 e 1 quindi nel nostro caso restituisce ( [5, 10, 15] , [1, 2, 3] ).
Definiamo un array myArray con cui lavorare come myArray = [ 5,10,15,20]
- myArray > 10: restituisce un array di true e false a giudicare dalla condizione, quindi nel nostro caso restituisce [false, false, true, true]. Nota che tihs non cambia il valore originale di myArray ma crea invece un nuovo awway.
- myArray [myArray > 10]: restituisce un nuovo array con gli elementi che effettivamente seguono la condizione come [15, 20].
- myArray + myArray: restituisce un array in cui i valori vengono sommati indice per indice e posizionati sull'indice corrispondente, nel nostro caso restituisce [10, 20, 30, 40].
- myArray — myArray: Restituisce un array in cui i valori vengono sottratti indice per indice e posizionati sull'indice corrispondente, nel nostro caso restituisce [0, 0, 0, 0].
- myArray/myArray: Restituisce un array in cui i valori sono divisi indice per indice e posizionati sull'indice corrispondente, nel nostro caso restituisce [1,1,1,1]. Si noti che se ci fosse uno 0 in qualsiasi indice come valore, poiché un numero non può essere diviso per 0, questo genererebbe un avviso e restituirebbe nan per quell'indice ma dividerebbe gli altri indici come al solito.
- np.sqrt(myArray): restituisce un array con la radice quadrata se ogni valore sullo stesso indice. Quindi se myArray fosse [25, 16, 36] la funzione restituirebbe [ 5, 4, 6].