вектор умножения по элементам со строками матрицы

#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. Это не то, что произошло, когда я запустил его.