Padroneggiare NumPy: inizializzare modi, operazioni e funzioni Ndarray

Pubblicato: 2021-01-05

Numpy è un pacchetto Python che consente di eseguire operazioni matematiche e numeriche con funzionalità ad alta efficienza e astratta su dati ad alta dimensione. Durante la creazione di una soluzione di Machine Learning per un particolare caso d'uso aziendale, diventa molto importante trasformare i dati in modo tale che la preelaborazione diventi semplice e i risultati siano interpretabili. Numpy è la libreria di base che permette di svolgere tutte le relative funzioni nel miglior modo possibile.

Sommario

Perché NumPy?

Altre librerie di Data Science come Pandas, Matplotlib e Scikit-learn sono basate su Numpy per la sua natura ad alte prestazioni. Questa libreria offre ndarray che viene utilizzato al posto degli elenchi python integrati. L'elenco Python è ottimo per archiviare valori, ma ha il costo di un maggiore tempo di esecuzione in quanto memorizza i puntatori delle posizioni di memoria che aggiungono sovraccarico in termini di memoria ed esecuzione.

Numpy trova il suo utilizzo diretto nel campo dell'elaborazione delle immagini in cui le immagini vengono elaborate come matrici multidimensionali elevate per eseguire varie trasformazioni come sfocatura, cambio colore e rilevamento di oggetti.

Diamo un'occhiata ad alcune importanti funzioni di Numpy che ogni aspirante di Data Science dovrebbe conoscere, ma prima ancora:

  1. Tutto il codice delle funzioni riportato di seguito presuppone che la libreria sia stata importata con alias np, ovvero import numpy as np.
  2. Il termine "array" verrà utilizzato per definire ndarray dopo questo punto.

Diversi modi per inizializzare

1. Distanziati linearmente

Questa funzione ha lo scopo di fornire una matrice distanziata lineare all'interno dell'intervallo di valori. La funzione np.linspace(start, stop, num) dove start e stop definiscono l'intervallo di valori e num definiscono il numero di campioni, restituisce valori equidistanti mentre np.arange(start, stop, step) restituisce valori che differiscono di valori di passo.

2. Valori particolari

In molti casi, potresti voler inizializzare una matrice di grandi dimensioni con valori come uno, zero, identità o valori costanti. La dimensione dell'array viene passata come una tupla. Numpy facilita questo tramite diverse funzioni:

    • np.zeros(dimensione): gli elementi sono zero
    • np.ones(size): gli elementi sono uno
    • np.full(dimensione, valore costante): gli elementi sono un valore costante passato.
    • np.eye(size): gli elementi diagonali sono uno e il resto è zero. Questa è la matrice dell'identità.
    • np.empty(size): matrice vuota
    • np.random.random(size): la matrice dei valori casuali viene inizializzata della dimensione specificata.

Leggi: Domande di intervista Numpy

Operazioni Ndarray

Lo scopo principale di questa libreria è il calcolo efficiente tra diversi array. Numpy supporta quasi tutti i tipi di operazioni e manipolazioni matematiche che vengono applicate a livello di elemento. Alcuni di essi sono elencati di seguito (supponiamo che due array A e B della stessa dimensione siano inizializzati con valori casuali):

1. Matematica

  • np.add(A, B): aggiunta
  • np.subtract(A, B): sottrazione
  • np.divide(A, B): Divisione
  • np.multiply(A, B): Moltiplicazione
  • np.exp(A): valori esponenziali
  • np.sqrt(A): valori di radice quadrata
  • np.sin(A), cos(A), tan(A): Valori trigonometrici
  • np.log(A): valori logaritmici
  • np.percentile(A, percentile necessario, asse): al passaggio del valore percentile, ad esempio 50, la funzione restituirà il 50° percentile dell'array.
  • A.dot(B): Restituisce il prodotto scalare degli array
  • A == B: Confronto tra elementi
  • np.array_equal(A, B): confronto a livello di array
  • A.sum(): somma di tutti gli elementi
  • A.min(), max(): valori minimo e massimo
  • A.cumsum(): somma cumulativa degli elementi dell'array
  • A.corrcoef(): Coefficiente di correlazione

2. Manipolazioni

  • np.transpose(A) o AT: trasposizione della matrice
  • A.ravel(): appiattisce l'array
  • A.reshape(new_shape): rimodella l'array (qui passa la dimensione direttamente senza inserirla nella tupla). La nuova taglia dovrebbe essere la stessa di
  • A.resize(size): cambia la forma dell'array in qualsiasi forma e scarta altri elementi che non fanno parte di questa nuova forma.
  • np.concatenate((A,B), asse=1 o 0)
  • np.vstack((A,B)): impila gli array verticalmente (per riga)
  • np.hstack((A,B)): pila orizzontale

Dai un'occhiata: Numpy vs Panda: differenza tra

Funzioni varie

  • np.where(): questa è una funzione essenziale che elimina la necessità di istruzioni if-else. Occorrono 3 argomenti importanti: condizione, il valore se la condizione è soddisfatta e il valore in caso contrario. Un semplice esempio può essere quando devi binarizzare una colonna in base a una determinata soglia.
  • np.intersect1d(): questa funzione restituisce l'intersezione di due array 1-d. Ciò significa che i valori comuni di questi array vengono restituiti da questa funzione. Se gli array passati non sono 1-d, viene appiattito.
  • np.allclose(): è una funzione interessante. Ci sono situazioni in cui puoi permetterti un certo livello di tolleranza mentre confronti gli array o vuoi scoprire array simili. Questa funzione accetta gli array e il valore di tolleranza desiderato. Per esempio:
    • arr1 = np.array([1,2,3,4])
    • arr2 = np.array([2,3,4,5])
    • np.allclose(arr1, arr2, 0.5): restituirà False
    • np.allclose(arr1, arr2, 1): restituirà True
  • argmin(), argmax() e argsort(): come suggerisce il nome, queste funzioni restituiscono gli indici dei rispettivi nomi. A.argmin() restituisce l'indice minimo dell'elemento, A.argmax() il contrario e A.argsort() restituisce gli indici dell'array ordinato. Queste funzioni possono tornare utili quando il risultato dipende dall'indice.
  • np.clip(): viene utilizzato per convertire i valori all'interno di un intervallo specifico. Ad esempio, se una matrice ha valori da 1 a 30 e si desidera valori compresi tra 14 e 27 senza perdere altri valori, questa funzione aumenterà i valori da 19 a 19 e ridurrà i valori da 27 a 27.

Conclusione

Ci sono molte più funzioni mentre si opera su array numpy, ma queste sono le funzioni più utilizzate. Le operazioni applicate su colonne o serie Panda sono in realtà su ndarray poiché la serie è unidimensionale ndarray.

Numpy è un ottimo strumento per generare dati falsi per testare algoritmi specifici o simulare uno scenario. È ampiamente utilizzato nelle applicazioni di visione artificiale in cui l'immagine viene trasformata in matrici multidimensionali per eseguire le operazioni richieste o nel deep learning in cui i pesi della rete neurale sono trattenuti da questi ndaray.

Se sei curioso di conoscere la scienza dei dati, dai un'occhiata al Diploma PG in Data Science di IIIT-B e upGrad, creato per i professionisti che lavorano e offre oltre 10 casi di studio e progetti, workshop pratici pratici, tutoraggio con esperti del settore, 1- on-1 con mentori del settore, oltre 400 ore di apprendimento e assistenza al lavoro con le migliori aziende.

Prepararsi per una carriera del futuro

DIPLOMA PG DA IIIT-B, 100+ ORE DI APPRENDIMENTO IN AULA, 400+ ORE DI APPRENDIMENTO ONLINE E SUPPORTO ALLA CARRIERA A 360 GRADI
Per saperne di più