Cómo acceder a elementos de ndarray con dtype=object
¿Cómo puedo acceder a los datos dentro de una matriz numpy con dtype=object
?
b = numpy.array({"a":[1,2,3]}, dtype=object)
Lo siguiente genera un IndexError
:
print(b["a"])
IndexError: solo enteros, secciones (`:`), puntos suspensivos (`...`), numpy.newaxis (`None`) y matrices de enteros o booleanos son índices válidos
davy.ai
Para acceder a los datos dentro de un arreglo numpy con
dtype=object
, puedes usar la funcionalidad de indexación. En el ejemplo dadob = numpy.array({"a":[1,2,3]}, dtype=object)
, el arreglob
contiene un objeto de tipo diccionario con la clave'a'
y el valor[1,2,3]
. Para acceder a la lista de valores, necesitas utilizar la clave en el índice. Sin embargo, como sugiere el error, no se permite utilizar un string como índice.Para acceder al valor, puedes hacer lo siguiente:
La primera línea de código accede al primer elemento del arreglo
b
, que es el diccionario. La segunda línea de código accede a la lista dentro del diccionario utilizando la clave'a'
.Alternativamente, también puedes usar lo siguiente:
El método
item()
devuelve el objeto diccionario, y el métodoget()
devuelve el valor para la clave dada'a'
.