我有这个矩阵:
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)
答案 0 :(得分:1)
第一个是微不足道的:
a * b
对于第二种,这是一种方式:
a * b[:,np.newaxis]
首先将3向量b
转换为3x1矩阵。它相当于:
a * b.reshape(-1, 1)
或者:
(a.T * b).T