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ß zerosund oneswü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.vist 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.