Muszę utworzyć tablicę NumPy o długości n
, której każdy element jest v
.
Czy jest coś lepszego niż:
a = empty(n)
for i in range(n):
a[i] = v
Wiem zeros
i ones
działałbym dla v = 0, 1. Mógłbym użyć v * ones(n)
, ale to nie zadziała, kiedy byłoby znacznie wolniejsze.v
jest None
, a także
v * ones(n)
nadal jest okropny, ponieważ używa drogiego mnożenia. Wymień *
się +
jednak, i v + zeros(n)
okazuje się być zaskakująco dobre w niektórych przypadkach ( stackoverflow.com/questions/5891410/... ).
var = np.empty(n)
a następnie wypełnić ją „var [:] = v”. (przy okazji, np.full()
jest tak szybki)
a = np.zeros(n)
w pętli jest szybsze niża.fill(0)
. Jest to sprzeczne z oczekiwaniami, ponieważ myślałema=np.zeros(n)
, że będę musiał przydzielić i zainicjować nową pamięć. Jeśli ktokolwiek może to wyjaśnić, byłbym wdzięczny.