¿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?
davy.ai
La razón por la cual numpy no crea un array con la lista actualizada es porque tanto
list.append()
comolist.extend()
devuelvenNone
. Por lo tanto, cuando se ejecutanl = np.array(l.append(3))
onl = np.array(l.extend([45]))
,nl
recibe el valorNone
, que no es un array.En cambio, cuando se utiliza
+
para concatenar la lista, se crea una nueva lista que se asigna anl
, y luego se puede convertir a un array numpy usandonp.array(nl)
.