Сумма по одной оси в NumPy
Буква, которая есть слева у таблицы, но отсутствует справа от стрелки, как раз и означает суммирование по этой оси. Какие буквы останутся в ответе, такова будет форма результата.
Запись 'ij->j' убирает букву
'i': складывают строки друг
с другом и получают один ряд
итогов по столбцам:
import numpy as np
table = np.array([[1, 2],
[3, 4]])
col_totals = np.einsum('ij->j', table)
print(col_totals) # выведет [4 6]
Запись 'ij->i' наоборот убирает
'j' и суммирует по столбцам,
оставляя итог по каждой строке:
import numpy as np
table = np.array([[1, 2],
[3, 4]])
row_totals = np.einsum('ij->i', table)
print(row_totals) # выведет [3 7]
Для таблицы [[10, 20], [1, 2]]
получите ряд сумм по столбцам,
оставив в формуле только букву
столбца справа от стрелки,
и выведите результат.
Для таблицы [[5, 0], [2, 3]]
получите ряд сумм по строкам,
оставив в формуле только букву
строки справа от стрелки,
и выведите результат.