복붙노트

[PYTHON] numpy 배열을 사용하여 열 벡터 연결

PYTHON

numpy 배열을 사용하여 열 벡터 연결

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]]) ##

더 좋은 방법이 있습니까?

해결법

  1. ==============================

    1.numpy.column_stack이 원하는 것을해야한다고 생각합니다. 예:

    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
    

    그래도. 설명서에 나와 있습니다.

  2. ==============================

    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]])
    
  3. from https://stackoverflow.com/questions/14741061/concatenating-column-vectors-using-numpy-arrays by cc-by-sa and MIT license