Python: Creating list of subarrays
Question: I have a massive array but for illustration I am using an array of size 14. I
have another list which contains 2, 3, 3, 6. How do I efficiently without for
look create a list of new arrays such that:

    
    
    import numpy as np
    A = np.array([1,2,4,5,7,1,2,4,5,7,2,8,12,3]) # array with 1 axis
    subArraysizes = np.array( 2, 3, 3, 6 ) #sums to number of elements in A
    B = list()
    B[0] = [1,2]
    B[1] = [4,5,7]
    B[2] = [1,2,4]
    B[3] = [5,7,2,8,12,3]
    

i.e. select first 2 elements from A store it in B, select next 3 elements of A
store it in B and so on in the order it appears in A.


Answer: You can use
[`np.split`](http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.split.html)
-

    
    
    B = np.split(A,subArraysizes.cumsum())[:-1]
    

Sample run -

    
    
    In [75]: A
    Out[75]: array([ 1,  2,  4,  5,  7,  1,  2,  4,  5,  7,  2,  8, 12,  3])
    
    In [76]: subArraysizes
    Out[76]: array([2, 3, 3, 6])
    
    In [77]: np.split(A,subArraysizes.cumsum())[:-1]
    Out[77]: 
    [array([1, 2]),
     array([4, 5, 7]),
     array([1, 2, 4]),
     array([ 5,  7,  2,  8, 12,  3])]
    

