Reshape

반응형
    반응형

    ndarray의 형태 바꾸는 방식을 설명하겠습니다.

     

     

    reshape

    reshape로 바꾸는 방법입니다. 원하는 모든 모양으로 바꿀 수 있습니다. 당연한 거지만 꼭 주의해야 할 것은 ndarray가 가지고 있는 숫자와 맞아야 합니다. 예를 들어, np.arange(16)로 하면 가능한 모양은 (3,5),(5,3),(15,1),(1,15) 만 가능합니다. 다른 모양을 하라고 명령하면 숫자가 맞지 않는다는 오류가 뜹니다.  

    import numpy as np
    x = np.arange(15)
    print(x)

    x.reshape(3,5)

    x는 15개의 원소로 이루어진 모양이(15,)인 ndarray였는데 (3,5)로 바꾼 것을 볼수 있습니다.

     

    flatten

    flatten은 모든 배열을 다 1차원 배열로 만들어줍니다. 즉, 일렬로 만듭니다. 내가 모양을 몰라도 일렬로 만들 수 있고 복사본으로 반환됩니다. 

    x = np.arange(15).reshape(3,5)
    x.flatten()

    파라미터를 보면 order = 'C' 라는 것이 붙여져 있습니다.

    C 말고도 F,A,K를 쓸 수 있는데 주로 C,F만 쓰니 C,F만 설명하겠습니다.

    C는 기본으로 되어있는 정렬방식인데 row를 기준으로 변경합니다.

     

    x를 살펴보면 다음과 같은 배열로 나타나는데 order='C'를 하면 첫번째 row가 [0,1,2,3,4]를 먼저 넣고

    두번째 row [5,6,7,8,9]를 넣는 방식입니다. 위에 쓴 x.flatten()이 order='C'으로 정렬한 것입니다.

     

     

    F는 column을 기준으로 변경합니다. order='F'를 하면 x의 첫번째 column [0,5,10], 그 다음 [1,6,11] 으로 배열을 해줍니다.

    x.flatten(order='F')

     

    배열 확인 shape

    배열 확인을 위해서는 shape으로 확인합니다.

    shape은 함수가 아니므로 파라미터가 존재하지 않습니다. 따라서 shape()으로 쓰면 오류가 발생합니다.

    x.arange(15)
    x.shape
    

     

    'Python > Numpy' 카테고리의 다른 글

    axis(축) 이해  (2) 2020.05.25
    [Numpy] 연산,통계,집계함수  (2) 2020.05.21
    ndarray 인덱싱,슬라이싱  (0) 2020.05.17
    ndarray 랜덤한값 생성  (0) 2020.05.14
    ndarray 생성하기  (0) 2020.05.13

    댓글

    Designed by JB FACTORY

    ....