我想使用 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]]) ##
有更好的方法吗?
最佳答案
我相信 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
虽然。正如它在文档中所说的那样。
关于python - 使用 numpy 数组连接列向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14741061/