Ответ 1
@Ney @hpaulj правильно, вам нужно поэкспериментировать, но я подозреваю, что вы не понимаете, что суммирование для некоторых массивов может происходить по осям. Соблюдайте следующее:
>>> a
array([[0, 0, 0],
[0, 1, 0],
[0, 2, 0],
[1, 0, 0],
[1, 1, 0]])
>>> np.sum(a, keepdims=True)
array([[6]])
>>> np.sum(a, keepdims=False)
6
>>> np.sum(a, axis=1, keepdims=True)
array([[0],
[1],
[2],
[1],
[2]])
>>> np.sum(a, axis=1, keepdims=False)
array([0, 1, 2, 1, 2])
>>> np.sum(a, axis=0, keepdims=True)
array([[2, 4, 0]])
>>> np.sum(a, axis=0, keepdims=False)
array([2, 4, 0])
Вы заметите, что если вы не укажете ось (keepdims = True
два примера), то числовой результат будет таким же, но keepdims = True
вернул 2D
массив с номером 6, тогда как второе воплощение вернуло скаляр. Аналогично, при суммировании вдоль axis 1
(по строкам), 2D
массив возвращается снова, когда keepdims = True
. Последний пример, вдоль axis 0
(keepdims = True
столбцы), показывает аналогичную характеристику... размеры сохраняются, когда keepdims = True
.
Изучение осей и их свойств имеет решающее значение для полного понимания мощности NumPy при работе с многомерными данными.