Open in Colab

© Семён Лукашевский сайт автора

Транслирование массивов

Иногда бывает необходимо выполнять арифметические операции c массивами разной формы.

Допустим, мы хотим умножить один массив на другой, причем размерность у массивов будет разной:

С точки зрения линейной алгебры - это бред.

Но, на самом деле, в таком умножении есть довольно много логики: каждый столбец из первого массива был умножен на соответствующий элемент из второго массива.

Если бы подобный механизм в NumPy отсутствовал, нам пришлось бы делать подобные операции вручную.

Транслирование для двух (и более) массивов выполняется по двум правилам:

Но прежде чем говорить о применении этих правил в транслировании давайте сначала разберем несколько простых примеров. Умножим одномерный массив на число (скаляр).

Каждый элемент массива a умножился на число b - ничего сложного. Но давайте перепишем этот пример немного иначе.

Результат не изменился.

Но во втором случае мы использовали гораздо больше памяти, что не очень-то эффективно.

Теперь давайте попробуем что-нибудь посложнее - умножим каждый столбец двумерного массива на соответствующий элемент из другого, одномерного массива.

Типы данных в NumPy