числовая сумма по оси

Существует ли функция numpy для суммирования массива вдоль (не по) заданной оси? Под осью я подразумеваю что-то эквивалентное:

[x.sum() for x in arr.swapaxes(0,i)].

для суммирования по оси i.

Например, случай, когда numpy.sum не будет работать напрямую:

>>> a = np.arange(12).reshape((3,2,2))
>>> a
array([[[ 0,  1],
        [ 2,  3]],

       [[ 4,  5],
        [ 6,  7]],

       [[ 8,  9],
        [10, 11]]])
>>> [x.sum() for x in a] # sum along axis 0
[6, 22, 38]
>>> a.sum(axis=0)
array([[12, 15],
       [18, 21]])
>>> a.sum(axis=1)
array([[ 2,  4],
       [10, 12],
       [18, 20]])
>>> a.sum(axis=2)
array([[ 1,  5],
       [ 9, 13],
       [17, 21]])
6
задан user545424 21 August 2011 в 19:29
поделиться