Como corrigir: o objeto ‘numpy.ndarray’ não possui o atributo ‘index’
Um erro que você pode encontrar ao usar o NumPy é:
AttributeError : 'numpy.ndarray' object has no attribute 'index'
Este erro ocorre quando você tenta usar a função index() em um array NumPy, para o qual nenhum atributo de índice está disponível.
O exemplo a seguir mostra como resolver esse erro na prática.
Como reproduzir o erro
Suponha que temos o seguinte array NumPy:
import numpy as np #create NumPy array x = np. array ([4, 7, 3, 1, 5, 9, 9, 15, 9, 18])
Podemos usar a seguinte sintaxe para encontrar os valores mínimo e máximo no array:
#find minimum and maximum values of array
min_val = np. min (x)
max_val = np. max (x)
#print minimum and maximum values
print (min_val, max_val)
1 18
Agora suponha que estamos tentando encontrar a posição do índice dos valores mínimo e máximo no array:
#attempt to print index position of minimum value
x. index (min_val)
AttributeError : 'numpy.ndarray' object has no attribute 'index'
Recebemos um erro porque não podemos aplicar uma função index() a um array NumPy.
Como resolver o erro
Para encontrar a posição do índice dos valores mínimo e máximo no array NumPy, podemos usar a função NumPywhere () :
#find index position of minimum value
n.p. where (x == min_val)
(array([3]),)
#find index position of maximum value
n.p. where (x == max_val)
(array([9]),)
Pelo resultado podemos ver:
- O valor mínimo da matriz está localizado na posição 3 do índice.
- O valor máximo da matriz está localizado na posição 9 do índice.
Podemos usar a mesma sintaxe geral para encontrar a posição do índice de qualquer valor em um array NumPy.
Por exemplo, podemos usar a seguinte sintaxe para descobrir quais posições de índice são iguais ao valor 9 na matriz NumPy:
#find index positions that are equal to the value 9
n.p. where (x == 9 )
(array([5, 6, 8]),)
Pelo resultado, podemos ver que os valores nas posições de índice 5, 6 e 8 são todos iguais a 9 .
Recursos adicionais
Os tutoriais a seguir explicam como corrigir outros erros comuns em Python:
Como corrigir KeyError em Pandas
Como corrigir: ValueError: não é possível converter float NaN em int
Como corrigir: ValueError: os operandos não puderam ser transmitidos com formas