繁体   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