假设矩阵是一个二维的numpy数组(MxN),向量是一个一维的数组(1xN)- 两者都有相同的N行。我需要将向量中同一行的元素值添加到矩阵的每一列中:
[[1 2 3],
[4 5 6]]
[0.1 0.2]
result:
[[1.1 2.1 3.1],
[4.2 5.2 6.2]]
a + b[:, None]
:a = np.arange(1,7).reshape((2, 3))
b = np.array([0.1, 0.2])
a + b[:, None]
array([[1.1, 2.1, 3.1],
[4.2, 5.2, 6.2]])
或者:
a + b[:, np.newaxis]
array([[1.1, 2.1, 3.1],
[4.2, 5.2, 6.2]])
numpy.reshape(-1,1)
达到你想要的效果:l1 = np.array([[1, 2, 3],[4, 5 , 6]])
l2 = np.array([0.1, 0.2]).reshape(-1,1)
l1+l2
输出:
array([[1.1, 2.1, 3.1],
[4.2, 5.2, 6.2]])
M
行,N
列,尽管行/列不是numpy
术语的正式组成部分。 1d数组的形状为(M,),而不是(1,M)。要进行数学计算,您需要一个(M,1)形状的数组。 - hpaulj