Ich muss ein NumPy-Array mit einer Länge erstellen n
, von denen jedes Element ist v
.
Gibt es etwas Besseres als:
a = empty(n)
for i in range(n):
a[i] = v
Ich weiß zeros
und ones
würde für v = 0, 1 arbeiten. Ich könnte verwenden v * ones(n)
, aber es wird nicht funktionieren, wenn es wäre auch viel langsamer.v
ist None
, und
v * ones(n)
ist es immer noch schrecklich, da es die teure Multiplikation verwendet. Ersetzen Sie es *
durch +
und es v + zeros(n)
stellt sich in einigen Fällen als überraschend gut heraus ( stackoverflow.com/questions/5891410/… ).
var = np.empty(n)
und dann mit 'var [:] = v' zu füllen. (Übrigens np.full()
ist so schnell)
a = np.zeros(n)
in der Schleife für den Fall 0 schneller alsa.fill(0)
. Dies widerspricht meinen Erwartungen, da ich dachte, icha=np.zeros(n)
müsste neuen Speicher zuweisen und initialisieren. Wenn jemand dies erklären kann, würde ich es schätzen.