Errore di attributo risolto 'numpy.L'oggetto ndarray non ha un indice di attributo

Errore di attributo risolto 'numpy.L'oggetto ndarray non ha un indice di attributo
C'è una somiglianza molto stretta tra un elenco di pitone e un array numpy. Sebbene l'implementazione possa differire, coincidono in alcuni casi.

Pertanto, potresti essere tentato di utilizzare il metodo indice () fornito in un elenco di Python per ottenere l'indice di un elemento.

Errore

Facciamo un esempio:

my_list = ['mysql', 'postgresql', 'Mongodb', 'Redis']
print (f "indice: my_list.INDICE ('MongoDB') ")

Abbiamo un elenco di Python contenente elementi a quattro corde nell'esempio sopra. Per trovare l'indice di un elemento nell'elenco, utilizziamo la funzione indice () e passiamo il valore che stiamo cercando come parametro.

Se viene trovato l'elemento, la funzione deve restituire l'indice dell'elemento nell'elenco. Un output di esempio è come mostrato:

Indice: 2

Cosa succede quando tentiamo di eseguire la stessa operazione su un array numpy?

# Importa Numpy
Importa Numpy come NP
arr = np.Array (['Mysql', 'Postgresql', 'MongoDB', 'Redis'])
print (f "indice: arr.INDICE ('MongoDB') ")

Se eseguiamo il codice sopra, restituirà un errore come mostrato di seguito:

L'errore dell'attributo si verifica quando chiamiamo un attributo o un metodo non definito per l'oggetto.

Poiché il metodo Index () è definito solo in un elenco di Python e non in un array numpy, il codice sopra si tradurrà in un errore di attributo.

Soluzione

Se si desidera ottenere l'indice di un elemento da un array numpy, è possibile utilizzare la funzione dove.

La sintassi della funzione è come mostrato di seguito:

numpy.dove (condizione, [x, y,]/)

Possiamo adottare la funzione sopra per ottenere l'indice di un elemento come mostrato di seguito:

Stampa (NP.dove (arr == 'MongoDB'))

La funzione dovrebbe restituire una tupla con l'indice dell'elemento nell'array.

Conclusione

Questo articolo ha discusso dell'errore di attributo in Python, perché si verifica e come risolverlo in un array numpy.

Grazie per aver letto!!