Gli elenchi Python sostituiscono gli array, ma non riescono a fornire le prestazioni richieste durante il calcolo di grandi insiemi di dati numerici.
Per risolvere questo problema utilizziamo il file Libreria NumPy di Pitone. NumPy offre un oggetto array chiamato ndaray . Sono simili alle sequenze Python standard ma differiscono in alcuni fattori chiave.
Cos'è un array NumPy?
L'array NumPy è una struttura dati multidimensionale che costituisce il nucleo del calcolo scientifico in Python.
Tutti i valori in un array sono omogenei (dello stesso tipo di dati).
Offrono la vettorizzazione e la trasmissione automatica.
Forniscono una gestione efficiente della memoria, ufuncs (funzioni universali), supportano vari tipi di dati e sono flessibili con l'indicizzazione e l'affettamento.
Dimensioni negli array
Gli array NumPy possono avere più dimensioni, consentendo agli utenti di archiviare dati in strutture multistrato.
Dimensioni dell'array:
| Nome | Esempio |
| 0D (zero dimensionale) | Scalare – Un singolo elemento |
| 1D (unidimensionale) | Vettore: un elenco di numeri interi. |
| 2D (bidimensionale) | Matrix: un foglio di calcolo di dati |
| 3D (tridimensionale) | Tensore: memorizzazione di un'immagine a colori |
Crea oggetto matrice
Gli oggetti dell'array NumPy ci consentono di lavorare con gli array in Python. Viene chiamato l'oggetto array ndaray .
La funzione array() della libreria NumPy crea un file ndarray.
Python3
np.argmax
import> numpy as np> arr>=> np.array([>1>,>2>,>3>,>4>,>5>,>6>])> |
>
>
Produzione
[1,2,3,4,5,6]>
Possiamo anche creare un array NumPy usando List e Tuple.
Crea array NumPy da un elenco
È possibile utilizzare l'alias np per creare ndarray di a elenco utilizzando il metodo array().
li = [1,2,3,4] numpyArr = np.array(li)>
O
numpyArr = np.array([1,2,3,4])>
L'elenco viene passato al metodo array() che restituisce quindi un array con gli stessi elementi.
Esempio 1: L'esempio seguente mostra come inizializzare un array da un elenco.
esempio Java Lambda
Python3
includere la programmazione in c
import> numpy as np> > li>=> [>1>,>2>,>3>,>4>]> numpyArr>=> np.array(li)> print>(numpyArr)> |
>
>
Produzione:
[1 2 3 4]>
L'array risultante ha lo stesso aspetto di un elenco ma è un oggetto NumPy.
Esempio 2: Facciamo un esempio per verificare se numpyArr è un oggetto NumPy o meno. In questo esempio, stiamo utilizzando la funzione array() per convertire l'elenco in un array NumPy e quindi verificare se si tratta di un oggetto NumPy o meno.
Python3
import> numpy as np> > li>=> [>1>,>2>,>3>,>4>]> numpyArr>=> np.array(li)> > print>(>'li ='>, li,>'and type(li) ='>,>type>(li))> print>(>'numpyArr ='>, numpyArr,>'and type(numpyArr) ='>,>type>(numpyArr))> |
>
>
Produzione:
li = [1, 2, 3, 4] and type(li) = numpyArr = [1 2 3 4] and type(numpyArr) =>
Come puoi vedere li è un oggetto elenco mentre numpyArr è un oggetto array di NumPy.
Crea un array NumPy da una tupla
Puoi creare ndarray da a tupla utilizzando una sintassi simile.
tup = (1,2,3,4) numpyArr = np.array(tup)>
O
numpyArr = np.array((1,2,3,4))>
L'esempio seguente illustra come creare un array da una tupla. Qui stiamo usando la funzione array() per convertire la tupla in un array NumPy.
Python3
altezza kat timpf
import> numpy as np> > tup>=> (>1>,>2>,>3>,>4>)> numpyArr>=> np.array(tup)> > print>(>'tup ='>, tup,>'and type(tup) ='>,>type>(tup))> print>(>'numpyArr ='>, numpyArr,>'and type(numpyArr) ='>,>type>(numpyArr))> |
>
15 di 100,00
>
Produzione:
tup = (1, 2, 3, 4) and type(tup) = numpyArr = [1 2 3 4] and type(numpyArr) =>
Tieni presente che il valore di numpyArr rimane lo stesso per entrambe le conversioni.
Array NumPy e sequenze Python integrate
- A differenza degli elenchi, gli array sono di dimensione fissa e la modifica della dimensione di un array porterà alla creazione di un nuovo array mentre l'array originale verrà eliminato.
- Tutti gli elementi di un array sono dello stesso tipo.
- Gli array sono più veloci, più efficienti e richiedono meno sintassi rispetto alle sequenze Python standard.
Nota: Vari pacchetti scientifici e matematici basati su Python utilizzano Numpy. Potrebbero ricevere input come una sequenza Python incorporata, ma è probabile che convertano i dati in un array NumPy per ottenere un'elaborazione più rapida. Questo spiega la necessità di comprendere NumPy.
Perché l'array Numpy è così veloce?
Gli array Numpy sono scritti principalmente in Linguaggio C . Essendo scritti in C, gli array vengono archiviati in posizioni di memoria contigue che li rendono accessibili e più facili da manipolare. Ciò significa che puoi ottenere il livello di prestazioni di un codice C con la facilità di scrivere un programma Python.
- Dati omogenei: Gli array memorizzano elementi dello stesso tipo di dati, rendendoli più compatti ed efficienti in termini di memoria rispetto agli elenchi.
- Tipo di dati fisso: Gli array hanno un tipo di dati fisso, riducendo il sovraccarico della memoria eliminando la necessità di archiviare informazioni sul tipo per ciascun elemento.
- Memoria contigua: Gli array memorizzano gli elementi in posizioni di memoria adiacenti, riducendo la frammentazione e consentendo un accesso efficiente.

Allocazione della memoria dell'array Numpy
Se non hai NumPy installato nel tuo sistema, puoi farlo seguendo questi passaggi. Dopo aver installato NumPy puoi importarlo nel tuo programma in questo modo
import numpy as np>
Nota: Qui np è un alias comunemente usato per NumPy.
Allocazione dei dati nell'array Numpy
In NumPy, i dati vengono allocati in modo contiguo in memoria, seguendo un layout ben definito costituito da buffer di dati, forma e passi. Ciò è essenziale per un accesso efficiente ai dati, operazioni vettorizzate e compatibilità con librerie di basso livello come BLAS E LAPACK .
- Buffer dati: Il buffer di dati in NumPy è un singolo blocco di memoria piatto che memorizza gli elementi effettivi dell'array, indipendentemente dalla sua dimensionalità. Ciò consente operazioni efficienti a livello di elemento e accesso ai dati.
- Forma: La forma di un array è una tupla di numeri interi che rappresenta le dimensioni lungo ciascun asse. Ogni numero intero corrisponde alla dimensione dell'array lungo una dimensione specifica, che definisce il numero di elementi lungo ciascun asse ed è essenziale per indicizzare e rimodellare correttamente l'array.
- Passi: Gli stride sono tuple di numeri interi che definiscono il numero di byte da inserire in ciascuna dimensione quando si passa da un elemento a quello successivo. Determinano la spaziatura tra gli elementi in memoria e misurano quanti byte sono necessari per spostarsi da un elemento all'altro in ciascuna dimensione.

Conclusione
L'array NumPy in Python è una struttura dati molto utile e ci consente di eseguire varie operazioni scientifiche sui dati. È una struttura dati molto efficiente in termini di memoria e offre un'ampia varietà di vantaggi rispetto ad altre sequenze Python.
In questo tutorial, abbiamo spiegato in dettaglio gli array NumPy. Abbiamo trattato la definizione, la dimensionalità, il motivo per cui è veloce e come funziona l'allocazione dei dati in un array. Dopo aver completato questo tutorial acquisirai una conoscenza approfondita e completa dell'array NumPy e sarai in grado di implementarlo nei tuoi progetti Python.