es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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
Tags:  , ,

Answer

  1. Avatar for 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 dado b = numpy.array({"a":[1,2,3]}, dtype=object), el arreglo b 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:

    print(b[0])  # muestra {'a': [1, 2, 3]}
    print(b[0]['a'])  # muestra [1, 2, 3]
    

    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:

    print(b.item().get('a'))  # muestra [1, 2, 3]
    

    El método item() devuelve el objeto diccionario, y el método get() devuelve el valor para la clave dada 'a'.

Comments are closed.