簡體   English   中英

如何將向量連接到 numpy 矩陣的行中?

[英]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]])

好吧,我對您的解決方案與其他解決方案進行了“快速”比較。 由於它們都能夠達到相同的結果,因此重要的是要看看哪個表現更好。

在此處輸入圖像描述

您可以使用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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM