I need to add a lot of values to a numpy array in loop (about 100k), and know this methods:
import numpy as np
import time
#Method 1:
start = time.time()
b = np.array([0.0])
for i in range (1, 100000):
b = np.append(b, np.array([i]))
end = time.time()
print(end-start)
#Method 2:
start = time.time()
a = np.array([0])
A = np.empty(99999) * np.nan
a = np.concatenate((a, A), axis=0)
for i in range (1, 100000):
a[i] = i
end = time.time()
print(end-start)
_______________________________
result:
3.2555339336395264
0.018993854522705078
As you see, method 2 is faster, but the problem is I must remove np.nan from my array (because I don't know how many values should I add to my array, so I create np.nan array larger than it should be). Is there any way?