小编典典

使用numpy数组串联列向量

python

我想使用numpy数组连接“列”向量,但是因为numpy默认情况下将所有数组视为行向量,np.hstack并且np.concatenate沿任何轴都无济于事(而且也没有np.transpose按预期进行)。

a = np.array((0, 1))
b = np.array((2, 1))
c = np.array((-1, -1))

np.hstack((a, b, c))
# array([ 0,  1,  2,  1, -1, -1])  ## Noooooo
np.reshape(np.hstack((a, b, c)), (2, 3))
# array([[ 0,  1,  2], [ 1, -1, -1]]) ## Reshaping won't help

一种可能性(但太麻烦了)是

np.hstack((a[:, np.newaxis], b[:, np.newaxis], c[:, np.newaxis]))
# array([[ 0,  2, -1], [ 1,  1, -1]]) ##

有更好的方法吗?


阅读 212

收藏
2020-12-20

共1个答案

小编典典

我相信numpy.column_stack应该做您想要的。例:

>>> a = np.array((0, 1))
>>> b = np.array((2, 1))
>>> c = np.array((-1, -1))
>>> numpy.column_stack((a,b,c))
array([[ 0,  2, -1],
       [ 1,  1, -1]])

它基本上等于

>>> numpy.vstack((a,b,c)).T

虽然。如文档中所述。

2020-12-20