假设 numpy 向量a和矩阵b如下:import numpy as npa = np.array([1,2])b = np.array([[3,4],[5,6]])我想将向量a连接到矩阵 b 的每一行。预期输出如下:output=np.array([[1,2,3,4],[1,2,5,6]])我有一个工作代码如下:output=np.array([np.concatenate((a,row)) for row in b] )有没有更快的 numpy 函数来执行这样的任务?任何建议表示赞赏!
4 回答
温温酱
TA贡献1752条经验 获得超4个赞
output = np.zeros((2,4), int) output[:, :2] = a # broadcasts (2,) to (1,2) to (2,2) output[:, 2:] = b
繁花如伊
TA贡献2012条经验 获得超12个赞
你可以广播到witha
的形状,然后用 水平堆叠它们:b
np.broadcast_to
np.hstack
np.hstack([np.broadcast_to(a, b.shape), b])
array([[1, 2, 3, 4],
[1, 2, 5, 6]])
明月笑刀无情
TA贡献1828条经验 获得超4个赞
您可以使用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)
添加回答
举报
0/150
提交
取消