如何在 NumPy 中横向组合 3 个向量?
How can I combine 3 vectors sideways in NumPy?
我有 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]]]
有没有更好的方法?
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]])
我有 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]]]
有没有更好的方法?
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]])