使用numpy数组连接列向量

2024-03-29 14:36:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用numpy数组连接“column”向量,但由于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]]) ##

有更好的方法吗?


Tags: numpynpcolumn数组array向量transposewon
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]])

我相信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

不过。正如文件中所说。

相关问题 更多 >