2016-08-15 2 views
3

Я хочу добавить каждый столбец матрицы с помощью np.array, но numpy broadcast only позволяет добавлять все строки матрицы с помощью np.array. Как это сделать? Моя идея сначала перенести матрицу, а затем добавить массив, а затем транспонировать, но он использует два транспозиции. Есть ли функция, чтобы сделать это напрямую?numpy, как транслировать по столбцам

ответ

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.]])