파이썬(Python)/numpy

[Python] 리스트, 행렬 정렬 (Numpy, Matrix, List)

끄적끄적아무거나 2022. 1. 13. 08:59
반응형

 

목차

     

     

     

    파이썬 넘파이 Sort 메소드

     

    파이썬의 리스트와 행렬 정렬을 위해 Numpy라는 라이브러리의 sort 함수를 사용하면 쉽게 할 수 있습니다. 

     

    사용 방법은 아래와 같습니다.

     

    numpy.sort(넘파이 행렬)
    numpy.sort(넘파이 행렬)[::-1]
    numpy.sort(넘파이 행렬, axis = 0)
    numpy.sort(넘파이 행렬, axis = 1)

    1번 라인: 기본 정렬

    2번 라인: 배열일 경우 리스트 간 정렬

    3번 라인: 열(Column) 정렬

    4번 라인: 행(Row) 정렬

     

     

     

    위 그림을 통해 axis 방향을 참조 하시면 됩니다.

     

    아래 예제 코드를 통해 쉽게 이해하실 수 있습니다.

     

     

     

    배열 값 정렬 하기 (Matrix Sorting) 예제

     

    예제 코드>>

    import numpy as np
    import random
    
    x_list = []
    y_list = []
    z_list = []
    for _ in range(3):
        x_list.append(random.randint(1,10))
        y_list.append(random.randint(1,10))
        z_list.append(random.randint(1,10))
    
    numpy_list = np.array([x_list, y_list, z_list])
    print("numpy_list: \n",numpy_list)
    print("np.sort(numpy_list, axis=0): \n",np.sort(numpy_list, axis=0))
    print("np.sort(numpy_list, axis=1): \n",np.sort(numpy_list, axis=1))
    print("np.sort(numpy_list, axis=0)[::-1]: \n",np.sort(numpy_list, axis=0)[::-1])
    print("np.sort(numpy_list, axis=1)[::-1]: \n",np.sort(numpy_list, axis=1)[::-1])

    4~10번 라인: 3개의 랜덤 리스트 형성

    12번 라인: 리스트로 넘파이 배열 생성

    14~17번 라인: 다양한 정렬 조합

     

     

    결과>>

    numpy_list: 
     [[6 8 4]
     [8 2 3]
     [2 7 4]]
    np.sort(numpy_list, axis=0):
     [[2 2 3]
     [6 7 4]
     [8 8 4]]
    np.sort(numpy_list, axis=1):
     [[4 6 8]
     [2 3 8]
     [2 4 7]]
    np.sort(numpy_list, axis=0)[::-1]:
     [[8 8 4]
     [6 7 4]
     [2 2 3]]
    np.sort(numpy_list, axis=1)[::-1]:
     [[2 4 7]
     [2 3 8]
     [4 6 8]]

     

    주석>>

    axis 방향에 따라 정렬이 다르게 됨을 알 수 있습니다. 

    [::-1]을 사용하면 배열의 요소 간에 정렬도 axis 방향에 따라 진행됨을 알 수 있습니다.

     

     

     

     

     

    반응형