#python #numpy
#питон #тупица
Вопрос:
Рассмотрим вектор [0 1 2] и матрицу размером 3 x n. Как я могу умножить каждый элемент вектора на соответствующую строку матрицы. Каждый элемент строки 0 должен быть умножен на 0, каждый элемент строки 1 должен быть умножен на 1 и так далее?
Комментарии:
1. Можете ли вы поделиться тем, что вы пробовали до сих пор?
2. Пусть v-вектор, а A-матрица, я пытался: v = v[:,Нет] * A
3.
v[:, None] * A
кажется, делаешь то, о чем ты просишь. Что в этом было плохого?4. v приводится к матрице 3×3, где векторы хранятся в виде столбцов. Как же тогда это умножается?
5. @Sarah Да, это звучит правильно:
v[:, None].shape
это(3, 1)
то, что растягивается(3, 3)
, чтобы соответствоватьA
.
Ответ №1:
Я предполагаю, что вы используете numpy. Вы можете использовать matrix *= vector.reshape(-1, 1)
. Это преобразует вектор в столбец, а затем умножит строки.
Комментарии:
1. Тогда я бы заменил второй элемент в строке 0 на 1, а не на 0?
2. Это не то, что произошло, когда я запустил его.