Q:

Python numpy array of numpy arrays

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
   a=np.append(a,b)
   ...

Desired result:
[[1,5,3], [9,10,1], ..., [4,8,6]]

Real result:
[1,5,3,9,10,1,... 4,8,6]

Is it possible?  I don't know the final dimension of the array, so I can't initialize it with a fixed dimension.  

A:

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. 