为了账号安全,请及时绑定邮箱和手机立即绑定

如何将向量连接成 numpy 矩阵的行?

如何将向量连接成 numpy 矩阵的行?

慕慕森 2023-07-05 15:35:16
假设 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


查看完整回答
反对 回复 2023-07-05
?
繁花如伊

TA贡献2012条经验 获得超12个赞

你可以广播到witha的形状,然后用 水平堆叠它们:bnp.broadcast_tonp.hstack

np.hstack([np.broadcast_to(a, b.shape), b])

array([[1, 2, 3, 4],

       [1, 2, 5, 6]])


查看完整回答
反对 回复 2023-07-05
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

好吧,我对你的解决方案与其他解决方案进行了“快速”比较。由于它们都能够达到相同的结果,因此重要的是看看哪一个表现更好。

//img1.sycdn.imooc.com//64a51d6b0001a3c110641285.jpg


查看完整回答
反对 回复 2023-07-05
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

您可以使用reshapeconcatenate

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)


查看完整回答
反对 回复 2023-07-05
  • 4 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信