猿问

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

假设 numpy 向量a和矩阵b如下:


import numpy as np

a = 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 函数来执行这样的任务?任何建议表示赞赏!


慕慕森
浏览 130回答 4
4回答

温温酱

output = np.zeros((2,4), int) output[:, :2] = a    # broadcasts (2,) to (1,2) to (2,2) output[:, 2:] = b

繁花如伊

你可以广播到witha的形状,然后用 水平堆叠它们:bnp.broadcast_tonp.hstacknp.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)
随时随地看视频慕课网APP

相关分类

Python
我要回答