Умножение одной строки в матрице на скалярное значение, но сохранение всей матрицы

Мне было интересно, как я могу умножить скалярное значение для конкретной строки в матрице единиц?

Я знаю, что здесь есть похожий вопрос:

Но это отличается в том смысле, что, просто делая умножение, я теряю остальную часть матрицы. На выходе будет только строка из этой матрицы. Я хочу, чтобы вся матрица была изменена только в этой строке.

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. ]])
Другие вопросы по тегам