如何在NumPy中将3个向量组合在一起?

问题描述 投票:1回答:1

我有3个数组[x1,y1,z1],[x2,y2,z2],[x3,y3,z3]我如何得到[[x1,x2,x3],[y1,y2,y3],[z1 ,Z2,Z3]?

我可以:

result = np.array([[a1[0],a2[0],a3[0]], [a1[1],a2[1],a3[1]], [a1[2],a2[3],a3[3]]]

有没有更好的办法?

arrays numpy vector linear-algebra
1个回答
2
投票
In [32]: x,y,z = [1,2,3],[11,12,13],[21,21,23]                                  
In [33]: np.array([x,y,z])                                                      
Out[33]: 
array([[ 1,  2,  3],
       [11, 12, 13],
       [21, 21, 23]])

转:

In [34]: np.array([x,y,z]).T                                                    
Out[34]: 
array([[ 1, 11, 21],
       [ 2, 12, 21],
       [ 3, 13, 23]])

stack就像np.array一样,但让我们指定一个轴:

In [35]: np.stack([x,y,z],axis=1)                                               
Out[35]: 
array([[ 1, 11, 21],
       [ 2, 12, 21],
       [ 3, 13, 23]])

而对于纯列表解决方案:

In [36]: list(zip(x,y,z))                                                       
Out[36]: [(1, 11, 21), (2, 12, 21), (3, 13, 23)]

stacking的另一个变种:

In [37]: np.column_stack((x,y,z))                                               
Out[37]: 
array([[ 1, 11, 21],
       [ 2, 12, 21],
       [ 3, 13, 23]])
© www.soinside.com 2019 - 2024. All rights reserved.