簡體   English   中英

如何在一個矩陣中連接多個向量(每個向量是新矩陣的一列)

[英]How to concatenate many vectors in one matrix (each vector is a column of the new matrix)

我有簡單的4個向量(類型為numpy.ndarray),每個大小為256,我想創建一個新的矩陣,其中每列對應於每個向量。 所以連接后我將有一個256 * 4的矩陣

我嘗試使用hstack或np.concatenate,但我沒有得到我想要的結果..

提前致謝

vstack和轉置T

n = 256
a = np.arange(n) + 0
b = np.arange(n) + 1
c = np.arange(n) + 2
d = np.arange(n) + 3

x = np.vstack([a,b,c,d]).T
x

輸出:

array([[  0,   1,   2,   3],
       [  1,   2,   3,   4],
       [  2,   3,   4,   5],
       ...,
       [253, 254, 255, 256],
       [254, 255, 256, 257],
       [255, 256, 257, 258]])

或者,也可以使用column_stack方法:

x = np.column_stack([a,b,c,d])

如果你想把它作為一個實際的matrix而不是ndarray

m = np.matrix([a,b,c,d]).T

更新:要使用循環執行此操作,您可以在列表中收集數組,然后將它們堆疊在一起:

n = 256
l = []
for i in range(4):
    l.append(np.arange(n) + i)

x = np.vstack(l).T
x

或者,或者,在循環的每個步驟中逐個堆疊它們並在循環之后進行轉置:

n = 256
x = np.arange(n)
for i in range(1,4):
    x = np.vstack([x, np.arange(n) + i])

x = x.T
x

暫無
暫無

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

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