串联使用numpy的阵列列向量(Concatenating column vectors using

2019-07-19 11:45发布

我想用串联阵列numpy的“列”的载体,而是因为numpy的所有看到数组作为行向量在默认情况下, np.hstacknp.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]]) ##

有没有更好的办法呢?

Answer 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

虽然。 因为它说的文件中。



Answer 2:

我尝试以下。 希望这是配不上你在做什么?

>>> np.vstack((a,b,c))
array([[ 0,  1],
       [ 2,  1],
       [-1, -1]])
>>> np.vstack((a,b,c)).T
array([[ 0,  2, -1],
       [ 1,  1, -1]])


文章来源: Concatenating column vectors using numpy arrays