在numpy中,是否有一种快速的方法可以将一个向量添加到矩阵的每一行或每一列。
最近,我一直在将该向量重复成与矩阵相同大小的矩阵,但这样会消耗大量内存。例如
mat=np.arange(15)
mat.shape=(5,3)
vec=np.ones(3)
mat+=np.tile(vec, (5,1))
我能想到的另一种方法是使用Python循环,但循环速度较慢:
for i in xrange(len(mat)):
mat[i,:]+=vec
有没有一种快速的方法在numpy中实现这个操作,而不需要使用C扩展程序?
希望能够像广播的更灵活版本那样虚拟平铺向量。或者能够按行或列迭代操作,这在某些ufunc方法中几乎是可以做到的。
mat + vec
得到了相同的答案,所以我不确定你想要什么。[顺便说一句,这是一个“数组”,而不是一个“矩阵”。] - DSMmatrix
与2darray
是不同的。例如,在matrix
对象上进行乘法运算是矩阵乘法,而在array
对象上是逐元素相乘,因此将它们区分开来是一个好主意。 - DSM