Indicizzazione numpy

Indicizzazione numpy
“Numpy è un pacchetto in Python utilizzato per i calcoli su array n-dimensionali. Gli assi sono ciò che Numpy definisce dimensioni e un'operazione è ciò che è l'indicizzazione. Per recuperare una raccolta specifica di valori da un array numpy, utilizzare la funzione di indicizzazione. Il valore e il posizionamento del valore nell'array sono cose diverse; Pertanto, dobbiamo tenere presente che l'indice in un ndarray inizia a zero. In questo articolo, studieremo indicizzazione numpy e spiegheremo come recuperare i valori da un array usando i suoi indici."

Cosa sta indicizzando numpy?

Per accedere ai valori in array monodimensionali e multidimensionali, Python utilizza l'indicizzazione dell'array numpy. L'indicizzazione del c-ordine viene utilizzata da numpy. Di conseguenza, la posizione della memoria in più rapida evoluzione è in genere rappresentata dall'indice finale, mentre il primo indice indica in genere la stessa posizione di memoria.

Python standard ha la sintassi "x [obj]", dove x è un array e obj (un oggetto) è una selezione. Possono essere usati per indicizzare ndarrays a seconda del tipo di oggetto. I due tipi di indicizzazione che saranno coperti oggi sono l'indicizzazione di base e l'indicizzazione avanzata. Gli esempi che utilizzeremo rendono facile capire come utilizzare l'indicizzazione quando ci si riferisce ai dati in un array.

Esempio 1

Il primo caso è l'indicizzazione di base. L'indicizzazione e la divisione lungo le dimensioni dell'array sono note come indicizzazione di base. Esistono tre tipi di indicizzazione di base: indicizzazione degli elementi, taglio di base e strumenti di indicizzazione dimensionale, che includono "ellissi" e "nuovi assi."

Il nostro primo caso dimostrerà l'uso dell'indicizzazione a elementi singolo nell'indicizzazione di base.

Importa Numpy come NP
a = np.Arange (20)
Stampa (A [8])
Stampa (a [-5])

Come possiamo vedere dall'output, l'indicizzazione di base funziona esattamente come qualsiasi altra sequenza di Python standard. È a base di zero e consente agli indici negativi di iniziare dalla fine dell'array. Qui, usando il codice, abbiamo prima definito la variabile "A" e abbiamo superato il valore usando NP.funzione arange, quindi selezionato l'intero negativo 5 per calcolare l'uscita.

Esempio 2

Il nostro secondo esempio dimostrerà l'uso di taglio di base. La taglio di base estende il concetto di base di taglio in Python a N Dimensions, e si verifica quando "OBJ" è una combinazione di oggetti e numeri interi o un oggetto. La sintassi della fetta di base è x: y: z, dove x rappresenta l'indice di avvio, y rappresenta l'indice di arresto e z è il passaggio diverso da zero.

Ora diamo un'occhiata al codice:

Importa Numpy come NP
a = np.Array ([7, 8, 9, 10, 11, 12, 13, 14, 15])
Stampa (A [2: 11: 3])

Il risultato che otteniamo è:

X e Y negativi sono interpretati come n + x e + y, dove n rappresenta il numero di elementi nella dimensione corrispondente. La z negativa farà passare verso gli indici più piccoli. Usando gli stessi valori dall'alto, eseguiamo il seguente codice per ottenere il risultato dell'array. Il codice è un [-7: 15] e l'array è il suo risultato.

L'output è riportato qui.

Per le seguenti dimensioni, si presume che ci siano meno di n oggetti nella tupla di selezione. Il codice è:

Qui (2, 3, 1) viene generato, come puoi vedere di seguito.

Esempio 3

In questo esempio, useremo gli strumenti di indicizzazione dimensionale ellissi e newaxis, nonché una combinazione dei due.

Vedere lo schermo allegato in basso.

Entrambi questi codici sono uguali tra loro e l'esecuzione di uno di questi codici fornirà lo stesso output.

Ecco un'idea, dovremmo unirci a due tipi di indicizzazione, il base e avanzato:

a […, 0]
A [:, :, 0
Importa Numpy come NP
Print ('Combinazione di indicizzazione di base e avanzata:')
a = np.Arange (6)
Stampa (a [:, NP.newaxis] + a [np.newaxis ,:])

La variabile definita "a" utilizza NP.Arange funzione e passa il valore "6". La seconda riga di codice dichiara il valore della variabile come “[: NP. newaxis] + a [np.newaxis ,:] ". L'output per l'esecuzione del codice è come di seguito.

Ora passiamo all'indicizzazione avanzata nell'indicizzazione Numpy.

Esempio 4

Questo caso esamina il primo tipo di indicizzazione avanzata, chiamata indicizzazione intera. Ogni elemento della prima dimensione è abbinato a un elemento della seconda dimensione durante l'indicizzazione con i numeri interi. Di conseguenza, gli elementi corrispondenti vengono scelti con gli indici degli elementi (0,0), (1,0) e (2,1) in questo esempio.

Importa Numpy come NP
a = np.Array ([[7, 8], [9, 10], [11, 12]])
stampa (a [[0, 1, 1], [0, 0, 1])

L'output è:

Esempio 5

Per questo esempio, dovremmo provare a combinare l'indicizzazione di base e l'indicizzazione avanzata.

Importa Numpy come NP
a = np.Array ([[7, 8, 9], [10, 11, 12],
[13, 14, 15], [16, 17, 18]])
Stampa (A [1: 2, 1: 3])
Stampa (A [1: 2, [1,2]])

Innanzitutto, inseriamo il comando per importare numpy, quindi definiamo la variabile “A” e quindi passiamo il valore usando NP.funzione di array. L'output che otteniamo è:

Esempio 6

Parliamo di espressioni booleane come indice. È un'espressione logica che si traduce in "vero" o "falso". Vengono restituiti solo quegli elementi che soddisfano l'espressione booleana. Utilizzando questo metodo, i valori degli elementi richiesti vengono filtrati.

Il nostro scenario è selezionare un numero maggiore di 15 da alcuni valori. Il codice che eseguiamo è: "

Importa Numpy come NP
a = np.Array ([5, 8, 15, 17, 20])
Stampa (A [A> 15])

Dopo aver definito la variabile e aver passato i valori di cui sopra alla NP.Funzione array, stampiamo per un valore maggiore del numero 15 e otteniamo il seguente output:

Se esiste un solo array booleano e nessun array intero, la forma di uscita sarà unidimensionale e conterrà il numero di elementi effettivi dell'array booleano, seguiti dalle dimensioni rimanenti dell'array indicizzato. Eseguiamo il seguente codice:

importa numpy
ABC = Numpy.Arange (15).Reshape (3, 5)
yz = ABC> 20
Stampa (YZ [:, 3])

Le funzioni che stiamo usando in questo codice sono quelle di NP.Arange () e Reshape () dopo aver definito la variabile come "ABC" e la seconda variabile come "YZ" il cui valore è "ABC" è maggiore di 15.

Al momento dell'esecuzione del codice, otteniamo il seguente risultato.

Conclusione

In questo articolo, abbiamo appreso la definizione di indicizzazione numpy e due diversi tipi di indicizzazione numpy, ulteriormente divisi in più categorie e funzioni. Attraverso vari esempi, abbiamo imparato diversi modi per utilizzare l'indicizzazione numpy sotto forma di indicizzazione di base e avanzata. Combiniamo anche i tipi di indicizzazione per verificare quale sarebbe il risultato. Prova gli esempi forniti e guarda come funzionano per te sulla tua strada per conoscere l'indicizzazione di Python Numpy.