[英]How to concatenate a vector into rows of a numpy matrix?
假设 numpy 向量a和矩阵b如下:
import numpy as np
a = np.array([1,2])
b = np.array([[3,4],[5,6]])
我想将向量a连接到矩阵 b 的每一行中。 预期的 output 如下:
output=np.array([[1,2,3,4],[1,2,5,6]])
我有一个工作代码如下:
output=np.array([np.concatenate((a,row)) for row in b] )
有没有更快的 numpy function 来执行这样的任务? 任何建议表示赞赏!
output = np.zeros((2,4), int)
output[:, :2] = a # broadcasts (2,) to (1,2) to (2,2)
output[:, 2:] = b
您可以使用np.hstack
a
b
np.broadcast_to
:
np.hstack([np.broadcast_to(a, b.shape), b])
array([[1, 2, 3, 4],
[1, 2, 5, 6]])
您可以使用reshape
和concatenate
:
np.concatenate((np.concatenate((a.reshape(1,2), a.reshape(1,2))), b), axis=1)
或者使用tile
可能更好:
np.concatenate((np.tile(a.reshape(1,2), (2,1)), b), axis=1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.