Saat menambahkan hanya sekali atau sekali setiap saat, menggunakan np.append
di array Anda seharusnya baik-baik saja. Kekurangan dari pendekatan ini adalah memori dialokasikan untuk array yang benar-benar baru setiap kali dipanggil. Saat menumbuhkan array untuk sejumlah besar sampel, akan lebih baik untuk mengalokasikan array sebelumnya (jika ukuran total diketahui) atau menambahkan ke daftar dan mengonversi ke array sesudahnya.
Menggunakan 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)
Menggunakan daftar python untuk mengonversi ke array sesudahnya:
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)
Array numpy pra-alokasi:
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)
Ketika ukuran akhir alokasi awal yang tidak diketahui sulit dilakukan, saya mencoba mengalokasikan awal dalam potongan 50 tetapi tidak mendekati menggunakan daftar.
85.1 ms ± 561 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
np.insert([1,2,3], 3, 1)