Python numpy array of numpy arrays Python numpy array of numpy arrays arrays arrays

Python numpy array of numpy arrays


Never append to numpy arrays in a loop: it is the one operation that NumPy is very bad at compared with basic Python. This is because you are making a full copy of the data each append, which will cost you quadratic time.

Instead, just append your arrays to a Python list and convert it at the end; the result is simpler and faster:

a = []while ...:    b = ... # NumPy array    a.append(b)a = np.asarray(a)

As for why your code doesn't work: np.append doesn't behave like list.append at all. In particular, it won't create new dimensions when appending. You would have to create the initial array with two dimensions, then append with an explicit axis argument.


we can try it also :

arr1 = np.arange(4)arr2 = np.arange(5,7)arr3 = np.arange(7,12)array_of_arrays = np.array([arr1, arr2, arr3])array_of_arraysnp.concatenate(array_of_arrays)