我有两个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]]
?
答案 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]])