Necesito crear una matriz de longitud NumPy n
, cada elemento de los cuales es v
.
¿Hay algo mejor que:
a = empty(n)
for i in range(n):
a[i] = v
Sé zeros
y ones
funcionaría para v = 0, 1. Podría usar v * ones(n)
, pero no funcionará cuando lo sería mucho más lento.v
esté None
, y también
v * ones(n)
todavía es horrible, ya que utiliza la costosa multiplicación. Sin embargo, reemplace *
con +
, y v + zeros(n)
resulta ser sorprendentemente bueno en algunos casos ( stackoverflow.com/questions/5891410/… ).
var = np.empty(n)
y luego llenarlo con 'var [:] = v'. (por cierto, np.full()
es tan rápido como esto)
a = np.zeros(n)
en el bucle es más rápido quea.fill(0)
. Esto es contrario a lo que esperaba, ya que penséa=np.zeros(n)
que necesitaría asignar e inicializar nueva memoria. Si alguien puede explicar esto, lo agradecería.