Wenn Sie hin und wieder nur einmal oder einmal anhängen, sollte die Verwendung np.append
in Ihrem Array in Ordnung sein. Der Nachteil dieses Ansatzes besteht darin, dass bei jedem Aufruf Speicher für ein völlig neues Array zugewiesen wird. Wenn Sie ein Array für eine erhebliche Anzahl von Samples vergrößern, ist es besser, das Array entweder vorab zuzuweisen (wenn die Gesamtgröße bekannt ist) oder an eine Liste anzuhängen und anschließend in ein Array zu konvertieren.
Verwenden von np.append
:
b = np.array([0])
for k in range(int(10e4)):
b = np.append(b, k)
1.2 s ± 16.1 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
Verwenden der Python-Liste, die anschließend in ein Array konvertiert wird:
d = [0]
for k in range(int(10e4)):
d.append(k)
f = np.array(d)
13.5 ms ± 277 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
Numpy-Array vorab zuweisen:
e = np.zeros((n,))
for k in range(n):
e[k] = k
9.92 ms ± 752 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
Wenn die endgültige Größe unbekannt ist, ist die Vorzuweisung schwierig. Ich habe versucht, die Vorzuweisung in Blöcken von 50 vorzunehmen, aber es kam der Verwendung einer Liste nicht nahe.
85.1 ms ± 561 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
np.insert([1,2,3], 3, 1)