Умножение одной строки в матрице на скалярное значение, но сохранение всей матрицы
Мне было интересно, как я могу умножить скалярное значение для конкретной строки в матрице единиц?
Я знаю, что здесь есть похожий вопрос:
Но это отличается в том смысле, что, просто делая умножение, я теряю остальную часть матрицы. На выходе будет только строка из этой матрицы. Я хочу, чтобы вся матрица была изменена только в этой строке.
1 ответ
Решение
Как прокомментировал @Lior T, лучший способ сделать это в NumPy - переназначить строку новым массивом. Следующий код умножает строку 2 на 5,2, оставляя оставшуюся часть матрицы без изменений.
>>> import numpy as np
>>> a = np.ones((5, 5))
>>> a
array([[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]])
>>> a[2] = a[2] * 5.2
>>> a
array([[1. , 1. , 1. , 1. , 1. ],
[1. , 1. , 1. , 1. , 1. ],
[5.2, 5.2, 5.2, 5.2, 5.2],
[1. , 1. , 1. , 1. , 1. ],
[1. , 1. , 1. , 1. , 1. ]])