Python numpy将数组与索引排序相结合

Python numpy将数组与索引排序相结合,python,arrays,numpy,Python,Arrays,Numpy,我想按照索引的顺序组合多个numpy数组。我的意思是:假设我有两个numpy数组,比如 >a=[0,1,2,3] >>>b=[-5,-6,-7,-8] 如何组合这些数组以使输出 c=np.组合函数((a,b)) >>>c=[0-5,1,-6,2,-7,3,-8] concatenate和append将把a和b放在彼此的“下一个”,这不是我想要的 Numpy的repeat和tile函数在这里起到了类比作用。比如说 np.重复([3,4,2],2) >>>[3,3,4,4,2,2]#两个3,两个

我想按照索引的顺序组合多个numpy数组。我的意思是:假设我有两个numpy数组,比如

>a=[0,1,2,3]
>>>b=[-5,-6,-7,-8]
如何组合这些数组以使输出

c=np.组合函数((a,b))
>>>c=[0-5,1,-6,2,-7,3,-8]
concatenate
append
将把
a
b
放在彼此的“下一个”,这不是我想要的

Numpy的
repeat
tile
函数在这里起到了类比作用。比如说

np.重复([3,4,2],2)
>>>[3,3,4,4,2,2]#两个3,两个4,两个2。这就是我想要的
np.瓷砖([3,4,2],2)
>>>[3,4,2,3,4,2]#[3,4,2]两次。这不是我想要的
平铺
是连接,就像
重复
是连接?

解决方案:

我已经能够完成这项工作了

c=np.stack((a,b)).flatten('F')

有更好的方法吗?

您的解决方案非常好。您可以通过按FORTRAN顺序进行堆叠来加快速度:

timeit(lambda:np.stack([a,b]).flatten("F"))
# 11.13118030806072
timeit(lambda:np.array([a,b],order="F").ravel(order="K"))
# 3.0580440941266716