[Навыки разработки] · Понимание и применение оси в Numpy

искусственный интеллект Python

[Навыки разработки] · Понимание и применение оси в Numpy

 

1. Описание проблемы

При использовании Numpy нам часто приходится работать с массивом.Если нам нужно работать с определенной широтой массива, мы будем использовать параметр оси.

Общий учебник заключается в работе с осью для двумерной матрицы.Когда ось равна 0, направление рассчитывается как столбец, а когда ось равна 1, направление рассчитывается как строка.

Но такое описание не позволяет нам по-настоящему понять значение оси. Далее я создам трехмерный массив, чтобы вы лучше поняли ось.

2. Практическое объяснение

>>> import numpy as np
>>> arrays = np.arange(0,12).reshape([2,3,2])
>>> arrays
array([[[ 0,  1],
        [ 2,  3],
        [ 4,  5]],

       [[ 6,  7],
        [ 8,  9],
        [10, 11]]])
>>> np.sum(arrays)
66
>>> np.sum(arrays,axis=0)
array([[ 6,  8],
       [10, 12],
       [14, 16]])
>>> np.sum(arrays,axis=1)
array([[ 6,  9],
       [24, 27]])
>>> np.sum(arrays,axis=2)
array([[ 1,  5,  9],
       [13, 17, 21]])

Почему такой результат, поможет разобраться автор:

Сначала мы создали новый массив формы (2, 3, 3)

1. При использовании np.sum(массивы) вычисляется сумма всех элементов.

2. При использовании np.sum(массивы, ось = 0) мы можем понять это так, взяв самый внешний [] как список, а также добавив и суммировав два элемента (каждый элемент представляет собой двумерный массив) внутри, поэтому результирующий массив имеет ту же форму, что и добавленные элементы.

2. При использовании np.sum(массивы, ось = 1) средний [ ] используется как список, а три элемента в нем (каждый элемент представляет собой одномерный массив) складываются и суммируются, поэтому полученный массив sum Добавленные элементы имеют одинаковую форму, но так как есть два средних [ ], они соединяются вместе.

3. При использовании np.sum(массивы, ось = 2) самый внутренний [ ] используется как список, а два элемента в нем (каждый элемент произносится человеком) складываются и суммируются, поэтому полученный массив Форма такая же, как и у элемента добавления, но так как есть два средних [ ], каждый средний [ ] содержит три [ ], и окончательная форма будет (2, 3).

Аналогично тому, что мы используем ту же концепцию при использовании индексов для выбора контента.

>>> import numpy as np
>>> arrays = np.arange(0,12).reshape([2,3,2])
>>> arrays
array([[[ 0,  1],
        [ 2,  3],
        [ 4,  5]],

       [[ 6,  7],
        [ 8,  9],
        [10, 11]]])
>>> arrays[0,:,:]
array([[0, 1],
       [2, 3],
       [4, 5]])
>>> arrays[:,0,:]
array([[0, 1],
       [6, 7]])
>>> arrays[:,:,0]
array([[ 0,  2,  4],
       [ 6,  8, 10]])
>>> 

Вы можете понять и проанализировать, почему это так, основываясь на том, что автор сказал выше.

hope this helps