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]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.