Разница между ADD и SUM в Python - PullRequest
0 голосов
/ 20 декабря 2018

Объяснение результатов функции SUM, если даны два двумерных массива

Когда я запускаю код в IDE Spyder, функция Sum и функция numpy.add показывают разные результаты.Может ли кто-нибудь помочь мне понять, как происходит вывод функции "SUM", когда мы дали два двумерных массива для двух параметров в функции суммы вместо массива и числа.Спасибо

import numpy as np

x = np.array([[1,2],[3,4]], dtype=np.float64)
y = np.array([[5,6],[7,8]], dtype=np.float64)

print(x)
print(y)
print (x+y)    
print(sum(x,y))
print(np.add(x,y))




        Output
[[1. 2.]
 [3. 4.]]
[[5. 6.]
 [7. 8.]]
[[ 6.  8.]
 [10. 12.]]
[[ 9. 12.]
 [11. 14.]]
[[ 6.  8.]
 [10. 12.]]

1 Ответ

0 голосов
/ 20 декабря 2018

В Numpy оператор + определяется как поэлементное добавление и фактически эквивалент до np.add(...).

Встроенная функция sum(iterable, [start])

Суммы начало и элементы повторяемые изслева направо и возвращает сумму.start по умолчанию равно 0.

Таким образом, если задана только одна матрица, она будет выполнять суммирование по столбцам.Если дан второй аргумент, он (поэлементно) прибавит к сумме.Таким образом, некоторые меньшие примеры могут быть

sum(x)
> array([4., 6.])
# i.e. [(1+3), (2+4)]

sum(x, 1)
> array([5., 7.])
# i.e. [(1+1+3), (1+2+4)]

sum(y)
> array([12., 14.])
# i.e. [(5+7), (6+8)]

sum(x, sum(y))
> array([16., 20.])
# i.e. [((5+7)+1+3), ((6+8)+2+4)]

sum(x, y)
> array([[ 9., 12.],
         [11., 14.]])
# i.e. [[(5+1+3), (6+2+4)],
#       [(7+1+3), (8+2+4)]]

. Последний sum() выполняет посимвольную сумму x, а затем добавляет результат к каждому элементу y с помощью общего столбца.Написано с помощью Numpy, оно эквивалентно

sum(x, y) == x.sum(axis=0) + y
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...