파이썬(Python)/numpy

[Python] Numpy 행렬 array에 열(Column), 행(Row) 추가하기

끄적끄적아무거나 2022. 3. 10. 08:58
반응형

 

목차

     

     

     

     

     

    파이썬 Numpy Array Matrix에 행 값 리스트(List) 추가하기

     

    넘파이로 배열(Matrix)을 만들고 추가 행을 붙이는 방법에 대해서 알아 보겠습니다. 행(Row)을 붙이는 함수는 아래와 같습니다.

     

    np.r_(원본 어레이, 추가할 행)

     

    함수는 r_ 함수를 사용하고 입력 값으로는 원본 array값에 추가할 행 값을 입력 합니다. 여기서 추가할 행에서 주의할 부분은 row의 개수에 맞춘 numpy array 값이여야 하고 list로 넣을 경우 [[ ]] 괄호를 두번 사용해서 동일 matrix라는 사실을 명기 해야 합니다

     

    그렇지 않으면 아래와 같은 에러 메세지가 발생 합니다.

     

        row_add_list = np.r_[np_list, insert_row]
      File "C:\Users\forgo\AppData\Local\Programs\Python\Python310\lib\site-packages\numpy\lib\index_tricks.py", line 412, in __getitem__
        res = self.concatenate(tuple(objs), axis=axis)
      File "<__array_function__ internals>", line 180, in concatenate
    ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 3 and the array at index 1 has size 2

     

        row_add_list = np.r_[np_list, insert_row]
      File "C:\Users\forgo\AppData\Local\Programs\Python\Python310\lib\site-packages\numpy\lib\index_tricks.py", line 412, in __getitem__
        res = self.concatenate(tuple(objs), axis=axis)
      File "<__array_function__ internals>", line 180, in concatenate
    ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 2 dimension(s) and the array at index 1 has 1 dimension(s)

     

     

    예제를 코드를 보면 쉽게 이해할 수 있습니다.

     

     

    예제 코드>>

    import numpy as np;
    
    np_list = np.array([[1, 2, 3], 
                         [4, 5, 6], 
                         [7, 8, 9], 
                         [10, 11, 12]])
    
    insert_row = [["x", "y", "z"]]
    
    row_add_list = np.r_[np_list, insert_row]
    
    print("np_list : \n",np_list)
    print("row_add_list : \n",row_add_list)

    3~6번 라인: 3x4의 배열(Matrix)를 생성합니다.

    8번 라인: 3x1ㅇ의 행 값을 리스트로 만듭니다.

    10번 라인: r_함수를 사용해서 추가 합니다.

     

     

    결과>>

    np_list : 
     [[ 1  2  3]
     [ 4  5  6]
     [ 7  8  9]
     [10 11 12]]
    row_add_list :
     [['1' '2' '3']
     ['4' '5' '6']
     ['7' '8' '9']
     ['10' '11' '12']
     ['x' 'y' 'z']]

     

     

     

     

     

    파이썬 Numpy Array Matrix에 열 값 리스트(List) 추가하기

     

    앞서 행 추가와 유사합니다. 이번에는 c_ 함수를 사용해서 열(Column) 값을 추가 합니다.

     

    np.c_(원본 넘파이 어레이, 추가할 열)

     

    앞서 행을 추가할 때 주의점에 대해 설명 드렸습니다. 열을 추가할 경우 리스트 값을 사용하면 행과는 다르게 단순 리스트 (행렬(Matrix)로 정의 안해도 됨)로 사용하셔도 됩니다. 하지만 열(Column)의 개수는 맞춰줘야 합니다.

     

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

     

     

    예제 코드>>

    import numpy as np;
    
    np_list = np.array([[1, 2, 3], 
                         [4, 5, 6], 
                         [7, 8, 9], 
                         [10, 11, 12]])
    
    insert_column = ["a", "b", "c", "d"]
    
    col_add_list = np.c_[np_list, insert_column]
    
    print("np_list : \n",np_list)
    print("col_add_list : \n",col_add_list)

    3~6번 라인: 3x4의 배열(Matrix)를 생성합니다.

    8번 라인: 1x4의 열 값을 리스트로 만듭니다.

    10번 라인: c_함수를 사용해서 추가 합니다.

     

     

     

    결과>>

    np_list : 
     [[ 1  2  3]
     [ 4  5  6]
     [ 7  8  9]
     [10 11 12]]
    col_add_list :
     [['1' '2' '3' 'a']
     ['4' '5' '6' 'b']
     ['7' '8' '9' 'c']
     ['10' '11' '12' 'd']]

     

     

     

    반응형