разделенный массив Python на неравные подмассивы - PullRequest
5 голосов
/ 29 марта 2012

Я пытаюсь разбить массив на n частей. Иногда эти части имеют одинаковый размер, иногда они имеют другой размер.

Я пытаюсь использовать:

split = np.split(list, size)

Это прекрасно работает, когда размер делится поровну на список, но в противном случае происходит сбой. Есть ли способ сделать это, чтобы «заполнить» окончательный массив дополнительными «несколькими» элементами?

Ответы [ 2 ]

23 голосов
/ 08 ноября 2012

Вы ищете np.array_split?Вот строка документа:

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

3 голосов
/ 29 марта 2012
def split_padded(a,n):
    padding = (-len(a))%n
    return np.split(np.concatenate((a,np.zeros(padding))),n)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...