Сокращённая запись произведений в NumPy
В NumPy одну и ту же схему свёртки можно описать строкой из букв вместо длинной цепочки циклов и вызовов.
Каждой оси массива сопоставляют свою букву. Слева от стрелки перечисляют индексы всех входных данных через запятую, справа оставляют только те буквы, которые должны остаться в результате. Буква, которая встретилась на входе, но не попала за стрелку, подразумевает суммирование по этой оси.
Сокращённая запись Эйнштейна так и называют этот приём: повторяющиеся буквы связывают оси разных массивов и задают, по чему складывать, а порядок букв справа задаёт форму и порядок осей ответа.
Тот же язык описывает сумму всех ячеек, умножение матриц, диагональ, внешнее произведение и более длинные цепочки с несколькими таблицами сразу.
Со всем этим мы и будем разбираться в рамках данного раздела.