Я хочу добавить каждый столбец матрицы с помощью np.array, но numpy broadcast only позволяет добавлять все строки матрицы с помощью np.array. Как это сделать? Моя идея сначала перенести матрицу, а затем добавить массив, а затем транспонировать, но он использует два транспозиции. Есть ли функция, чтобы сделать это напрямую?numpy, как транслировать по столбцам
3
A
ответ
1
Вместо того, чтобы использовать массив можно использовать вторую матрицу с помощью только одного столбца:
matrix = np.matrix(np.zeros((3,3)))
array = np.matrix([[1],[2],[3]])
matrix([[1],
[2],
[3]])
matrix + array
matrix([[ 1., 1., 1.],
[ 2., 2., 2.],
[ 3., 3., 3.]])
Если изначально есть массив, который вы можете изменить его форму, как это:
a = np.asarray([1,2,3])
matrix + np.reshape(a, (3,1))
matrix([[ 1., 1., 1.],
[ 2., 2., 2.],
[ 3., 3., 3.]])