是否有内置函数将两个一维数组合并为一个二维数组? 考虑以下示例:
X=np.array([1,2])
y=np.array([3,4])
result=np.array([[1,3],[2,4]])
我可以想到两种简单的解决方案。第一种方法很直接。
np.transpose([X,y])
另一种方法使用lambda函数。
np.array(list(map(lambda i: [a[i],b[i]], range(len(X)))))
尽管第二个看起来更复杂,但它似乎比第一个快了近两倍。
编辑 第三种解决方案涉及zip()函数。
np.array(list(zip(X, y)))
它比lambda函数更快,但比@Divakar建议的column_stack解决方案慢。
np.column_stack((X,y))
column_stack
函数:np.column_stack((X,y))
。 - Divakarnp.array([X,y]).T
。它必须首先创建一个数组,然后对其应用转置方法。(我应该检查 “strides” 来验证) - hpauljtranspose
(函数、方法或属性)的方法会生成一个F
顺序的数组,其步幅为 (8,16),而不是通常的 (16,8)。所有的stack
函数都使用np.concatenate
。 - hpaulj