I\'ve got a problem on creating a numpy array of numpy arrays. I would create it in a loop:
a=np.array([])
while(...):
...
b= //a numpy array generated
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_arrays
np.concatenate(array_of_arrays)