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.

¿Por qué numpy no crea un array al ejecutar un método de lista?

Jugando con numpy:

import numpy as np
l = [39, 54, 72, 46, 89, 53, 96, 64, 2, 75]
nl = np.array(l.append(3))


>> array(None, dtype=object)

Ahora, si llamo a l, obtendré la lista: [39, 54, 72, 46, 89, 53, 96, 64, 2, 75, 3]

Mi pregunta es, ¿por qué numpy no crea esa lista como un array?

Si hago algo como esto:

nl = np.array(l.extend([45])) obtengo lo mismo.

Pero, si intento concatenar sin un método: nl = np.array(l+[45]), funciona.

¿Qué está causando este comportamiento?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    La razón por la cual numpy no crea un array con la lista actualizada es porque tanto list.append() como list.extend() devuelven None. Por lo tanto, cuando se ejecuta nl = np.array(l.append(3)) o nl = np.array(l.extend([45])), nl recibe el valor None, que no es un array.

    En cambio, cuando se utiliza + para concatenar la lista, se crea una nueva lista que se asigna a nl, y luego se puede convertir a un array numpy usando np.array(nl).

Comments are closed.