Подскажите, пожалуйста, как закадровую автоматизацию можно сделать на платформе IOS Mobile

axis относится к размерности массива, в случае pd.DataFrame s axis=0 - это размер, который указывает вниз, а axis=1 - тот, который указывает справа.

Пример: подумайте о ndarray с формой (3,5,7).

a = np.ones((3,5,7))

a является трехмерным ndarray, то есть имеет 3 оси («оси» являются множественными «осью»). Конфигурация a будет выглядеть как 3 ломтика хлеба, где каждый срез имеет размер 5 на 7. a[0,:,:] будет ссылаться на 0-й срез, a[1,:,:] будет ссылаться на 1-й срез и т. д.

a.sum(axis=0) применит sum() вдоль 0-й оси a , Вы добавите все фрагменты и получите один фрагмент формы (5,7).

a.sum(axis=0) эквивалентен

b = np.zeros((5,7))
for i in range(5):
    for j in range(7):
        b[i,j] += a[:,i,j].sum()

b и a.sum(axis=0) будет оба выглядите так

array([[ 3.,  3.,  3.,  3.,  3.,  3.,  3.],
       [ 3.,  3.,  3.,  3.,  3.,  3.,  3.],
       [ 3.,  3.,  3.,  3.,  3.,  3.,  3.],
       [ 3.,  3.,  3.,  3.,  3.,  3.,  3.],
       [ 3.,  3.,  3.,  3.,  3.,  3.,  3.]])

В pd.DataFrame оси работают так же, как в numpy.array s: axis=0 применит sum() или любую другую функцию сокращения для каждого столбца.

N.B. В ответе @ zhangxaochen я нахожу фразы «вдоль рядов» и «вдоль столбцов» немного запутанными. axis=0 следует ссылаться на «вдоль каждого столбца» и axis=1 «вдоль каждой строки».

-3
задан Shri 28 March 2019 в 09:46
поделиться