在Python中将两个数组合并为1

时间:2015-08-25 14:34:03

标签: python arrays indexing data-structures

我有两个数组:vx和vz(shape()= 14502 x 36))我想要组合成一个数组,其中包含从两个组件(vx和vz)创建的速度向量。

V =(vx,vz)

示例:

vx = [(1,2,3),(4,5,6)]
vz = [(-1,-2,-3),(-4,-5,-6)]

我需要V是一个形状相同的数组,但每个元素都包含vx和vz数据。我确定这是Python中的基本格式,但我很难理顺它。

#Expected outcome: V = [(1,-1) (2,-2) (3,-3); (4,-4) (5,-5) (6,-6)]

甚至更简单:一个新的数组,其中第1列是来自Vx的第1列,而第2列是来自Vz的第1列,依此类推。

#Expected outcome: V = [(1,-1,2,-2,3,-3),(4,-4,5,-5,6,-6)]

2 个答案:

答案 0 :(得分:2)

看起来像使用2 zips的嵌套列表理解:

>>> [(x,y) for v,w in zip(vx,vz) for x,y in zip(v,w)]
[(1, -1), (2, -2), (3, -3), (4, -4), (5, -5), (6, -6)]

答案 1 :(得分:2)

numpy中的向量数组:

>>> import numpy as np
>>> V = np.array([vx, vz]).T      # create numpy array and transpose
>>> V[0, 0]
array([ 1, -1])
>>> V[1, 0]
array([ 2, -2])
>>> V[0, 1]
array([ 4, -4])