我想使用numpy数组连接“列”向量,但是因为numpy默认情况下将所有数组视为行向量,np.hstack并且np.concatenate沿任何轴都无济于事(而且也没有np.transpose按预期进行)。
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
虽然。如文档中所述。