In [26]: A=np.arange(5)
In [27]: B=np.arange(10,15)
In [28]: np.concatenate((A[:,None], B[:,None]), axis=1)
Out[28]:
array([[ 0, 10],
[ 1, 11],
[ 2, 12],
[ 3, 13],
[ 4, 14]])
In [29]: _.tolist()
Out[29]: [[0, 10], [1, 11], [2, 12], [3, 13], [4, 14]]
np.column_stack
, np.vstack
, np.stack
都是做同样的事情,只是以不同方式扩展数组的维度。
np.stack((A,B),-1)
以我所做的方式扩展数组,使用 newaxis
索引。
np.column_stack((A,B))
使用:
arr = array(arr, copy=False, subok=True, ndmin=2).T
np.vstack((A,B)).T
的作用是:
concatenate([atleast_2d(_m) for _m in tup], 0)
出于好奇,注意这个vstack
的等效方法:
In [38]: np.concatenate((A[None],B[None]))
Out[38]:
array([[ 0, 1, 2, 3, 4],
[10, 11, 12, 13, 14]])
np.column_stack
。 - Divakarnp.column_stack
会稍微慢一点吗? - kmario23np.concatenate
,所以如果你要与之进行比较,那么我们需要支付的是函数包装器的开销。 - Divakar