如何将两个1d numpy数组压缩为2d numpy数组

时间:2017-06-07 09:46:00

标签: python numpy

我有两个numpy 1d数组,例如:

a = np.array([1,2,3,4,5])
b = np.array([6,7,8,9,10])

那我怎样才能得到一个二维数组[[1,6], [2,7], [3,8], [4,9], [5, 10]]

3 个答案:

答案 0 :(得分:50)

如果你有numpy数组,你可以使用dstack()

import numpy as np

a = np.array([1,2,3,4,5])
b = np.array([6,7,8,9,10])

c = np.dstack((a,b))
#or
c = np.column_stack((a,b))

答案 1 :(得分:16)

答案在于你的问题:

np.array(list(zip(a,b)))


修改

虽然我的帖子提供了OP请求的答案,但转换到列表并返回NumPy数组需要一些开销(对于大型数组而言是显而易见的)。

因此,dstack将是计算上有效的替代方案(参考@ zipa的答案)。在发布此答案时我没有意识到dstack,因此请将其归功于@zipa,以便将其引入此帖。

答案 2 :(得分:3)

您可以使用zip

np.array(list(zip(a,b)))
array([[ 1,  6],
   [ 2,  7],
   [ 3,  8],
   [ 4,  9],
   [ 5, 10]])