2012-03-29 15 views
4

Ich versuche, ein Array in n Teile zu teilen. Manchmal haben diese Teile die gleiche Größe, manchmal haben sie eine andere Größe.Python numpy Split-Array in ungleiche Subarrays

ich zu verwenden Ich versuche:

split = np.split(list, size) 

Dieses funktioniert gut, wenn die Größe gleichmäßig in der Liste teilt, doch irgendwie anders. Gibt es einen Weg, dies zu tun, der das letzte Array mit den zusätzlichen "wenigen" Elementen "auffüllen" wird?

Antwort

2
def split_padded(a,n): 
    padding = (-len(a))%n 
    return np.split(np.concatenate((a,np.zeros(padding))),n) 
15

Suchen Sie nach np.array_split? Hier ist die docstring:

Split an array into multiple sub-arrays. 

Please refer to the ``split`` documentation. The only difference 
between these functions is that ``array_split`` allows 
`indices_or_sections` to be an integer that does *not* equally 
divide the axis. 

See Also 
-------- 
split : Split array into multiple sub-arrays of equal size. 

Examples 
-------- 
>>> x = np.arange(8.0) 
>>> np.array_split(x, 3) 
    [array([ 0., 1., 2.]), array([ 3., 4., 5.]), array([ 6., 7.])] 

http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.array_split.html