Python numpy array of numpy arrays

后端 未结 2 1067

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         


        
相关标签:
2条回答
  • 2020-12-10 02:16

    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.

    0 讨论(0)
  • 2020-12-10 02:16

    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)
    
    0 讨论(0)
提交回复
热议问题