J'ai besoin de créer un tableau NumPy de longueur n
, dont chaque élément est v
.
Y a-t-il quelque chose de mieux que:
a = empty(n)
for i in range(n):
a[i] = v
Je sais zeros
et ones
fonctionnerais pour v = 0, 1. Je pourrais utiliser v * ones(n)
, mais cela ne fonctionnera pas quand il serait v
est None
, etégalement beaucoup plus lent.
v * ones(n)
c'est toujours horrible, car il utilise la multiplication coûteuse. Remplacez-le *
par +
cependant et v + zeros(n)
s'avère étonnamment bon dans certains cas ( stackoverflow.com/questions/5891410/… ).
var = np.empty(n)
puis de le remplir avec 'var [:] = v'. (btw, np.full()
c'est aussi rapide que ça)
a = np.zeros(n)
dans la boucle est plus rapide quea.fill(0)
. Ceci est contraire à ce que j'attendais car je pensaisa=np.zeros(n)
qu'il faudrait allouer et initialiser une nouvelle mémoire. Si quelqu'un peut expliquer cela, je l'apprécierais.