通过数组元素 - twise乘以矩阵列

时间:2018-01-16 13:59:21

标签: arrays numpy matrix multiplication

我有这个矩阵:

while True:
    # ...
    if condition:
        break

和这个数组:

[[1, 2, 3],
 [0, 1, 0],
 [4, 5, 6]]

我想将每一行乘以数组元素:

[2, 4, 0.5]

而且,相同但有列:

[[2, 8, 1.5],
 [0, 4, 0],
 [8, 20, 3]]

我该怎么办?

@约翰

这是我的代码:

[[2, 4, 6],
 [0, 4, 0],
 [2, 2.5, 3]]

我无法得到我需要的东西:

import numpy as np

mx = np.matrix([[0,0,0,0],[1,1,1,1],[2,3,4,5],[6,7,8,9]])
print 'matrix:'
print mx
print '\n'

v = np.array([20,0,10,5])
print 'narray'
print v
print '\n'

print mx * v

ValueError: shapes (4,4) and (1,4) not aligned: 4 (dim 1) != 1 (dim 0)

1 个答案:

答案 0 :(得分:1)

第一个是微不足道的:

a * b

对于第二种,这是一种方式:

a * b[:,np.newaxis]

首先将3向量b转换为3x1矩阵。它相当于:

a * b.reshape(-1, 1)

或者:

(a.T * b).T