[英]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,但我沒有得到我想要的結果..
提前致謝
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.