파이썬(Python)/numpy

[Python] Numpy 행렬(Matrix) 함수(Shape, Reshape)

끄적끄적아무거나 2022. 3. 8. 09:06
반응형

 

목차

     

     

     

     

     

     

    파이썬 Numpy 행렬(Matrix) 함수 : Shape

     

    Shpae 함수는 numpy array 로 만든 행렬의 행의 수와 열의 수를 카운트 해줍니다. 사용 방법은 아래와 같습니다.

     

    tuple 값(행,열) = numpy.shape(numpy array)

     

    위와 같이 넘파이 어레이 값을 입력으로 넣으면 입력의 행과 열을 tuple(튜플)로 출력해 줍니다. arry에 들어 가는 [[ ]] 괄호를 두번 중첩해야지 matrix로 인식합니다. 한번만 사용하면 행만 있는 것으로 인식 합니다.

     

    아래 예제를 보시면 쉽게 이해할 수 있습니다.

     

     

    예제 코드>>

    import numpy as np;
    
    np_list0 = np.array([1,2,3,4])
    np_list1 = np.array([[1,2,3,4]])
    
    print("np_list0 : ",np_list0.shape)
    print("np_list1 : ",np_list1.shape)

     

    결과>>

    np_list0 :  (4,)
    np_list1 :  (1, 4)

    위 결과와 같이 np_list0은 4행(row)이고 열(Column)은 없습니다.

     

     

     

     

     

    파이썬 Numpy 행렬(Matrix) 함수 : Reshape

     

    Reshape 함수는 1차원 넘파이 어레이를 2차원, 3차원 행렬로 변환 해 줍니다. 변환을 위해 numpy array를 리스트에 맞춥니다. 

     

    reshape의 입력 값은 3차원(3 dimension)에서 (x축, y축, z축)이고 2차원에서는 x, y 가 행과 열이라고 생각하시면 됩니다.

     

    주의 할 점은 어레이 값은 reshape 하고자 하는 행렬의 매트릭스 수와 같아야 합니다. 예를 들어 3 x 4 의 행렬로 reshape을 한다면 입력 값은 12개가 1 차원으로 있어야 합니다.

     

     

    예제 코드>>

    import numpy as np;
    
    np_list0 = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
    np_list1 = np_list0.reshape(3, 4)
    np_list2 = np_list0.reshape(3, 2, 2)
    
    print("np_list0 : ",np_list0)
    print("np_list1 : ",np_list1)
    print("np_list2 : ",np_list2)

     

    결과>>

    np_list0 :  
    [ 1  2  3  4  5  6  7  8  9 10 11 12]
    np_list1 :  
    [[ 1  2  3  4]
     [ 5  6  7  8]
     [ 9 10 11 12]]
    np_list2 :  
    [[[ 1  2]
      [ 3  4]]
    
     [[ 5  6]
      [ 7  8]]
    
     [[ 9 10]
      [11 12]]]

     

    반응형