np.concatenate 함수 axis = 1 일 때, 출력형태 관련 질문입니다.

조회수 5076회

gird = np.array([[1, 2, 3], [4, 5, 6]]) 라는 2행 3열의 배열이 있을 때

np.concatenate([gird, grid], axis=1)을 하게 되면 왜 그 결과가

array([[1, 2, 3, 1, 2, 3], [4, 5, 6, 4, 5, 6]]) 와 같이 되는건가요?

제 생각에는 array([[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]]) 과 같이 되어야 할 것 같아서요

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    concatenate는 numpy document에 따르면 다음과 같은 일을합니다.

    Join a sequence of arrays along an existing axis.

    (해석) axis를 따라 각 배열을 join 합니다.

    따라서

    따라서 np.concatenate([grid, grid], axis=1)는 axis = 1을 기준으로, sequence를 join합니다. 그림으로 표현하면 다음과 같습니다.

    이미지


    array([[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]])를 만들고 싶다면 join이 아니라 stack 등을 쓰셔야할 것 같아요.

    flatten_grid = grid.flatten()
    np.array([flatten_grid, flatten_grid])
    np.stack((flatten_grid, flatten_grid))
    
    • 엄청 예전질문인데 답변달아주셔서 감사합니다 CaptivatingYourMind 2019.1.17 19:10
    • 엄청 예전질문인데 답변달아주셔서 감사합니다 CaptivatingYourMind 2019.1.17 19:10
    • 엄청 예전질문인데 답변달아주셔서 감사합니다 CaptivatingYourMind 2019.1.17 19:10
    • 엄청 예전질문인데 답변달아주셔서 감사합니다 CaptivatingYourMind 2019.1.17 19:10

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)