본문 바로가기
데이터 분석

[패스트 캠퍼스 수강 후기] 직장인을 위한 파이썬 데이터 분석 올인원 패키지 Online 5일차

by HIMMEL95 2021. 2. 27.

수강한 강의
37강. Ch06. numpy - 07. arrange, range / 38강. Ch06.numpy - 08. 정렬(sort) / 39강. Ch06.numpy - 09. 인덱스를 반환하는 argsort

오늘은 어제에 이어서 numpy에서 사용되는 arrange와 range의 차이점과 배열 정렬, 생성된 배열을 인덱스로 반환하여 출력하는 argsort에 관해서 작성해보겠습니다.

  1. 37강. Ch06. numpy - 07. arrange

    • arrange란?

      • arrange와 range를 같이 보고 이해하면 된다.
      • arrange : array를 생성하기 위해서 사용
      • range : for 문을 사용할 때 범위를 지정해주기 위해서 사용
    • 순서대로 리스트에 값을 생성하려면?
      1 ~ 10까지 값을 생성하려면?

            arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
        arr

      [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    • arrange를 사용해서 쉽게 생성하기

      • 첫 번째 인자에는 start 이상, 두 번째 인자에는 stop의 미만이 들어간다.

          arr = np.arange(start=1, stop=11)
        arr

        array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

          arr = np.arange(stop=11, start=1)
        arr

        array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

      • keyword 인자는 파라미터(인자)의 keyword를 지정해줌으로썬 순서 없이 지정해 줄 수 있다.

      • keyword 인자를 사용하게 되면 순서를 바꿔서 작성을 해도 인자로 작성이 되어있기 때문에 상관이 없습니다.

    • 홀수의 값만 생성
      1 ~ 10 사이의 값 중 홀수만 생성

            arr = np.arange(1, 11, 2)
            # arr = np.arange(start = 1, stop=11, step=2)
        arr

      array([1,3,5,7,9])

      • 지정된 범위 내에서 홀수만을 뽑아내긴 위해서 step이라는 keyword를 사용합니다.
      • step keyword는 정해진 숫자만큼 건너뛰면서 숫자를 나타내게 해 준다. 위의 코드처럼 np.arrange(start=1, stop=11, step=2) 이렇게 작성을 하게 되면 1부터 10까지의 범위 내에서 2씩 건너뛰게 된다. 그러면 1, 3, 5, 7, 9 이렇게 나오게 된다. 결국엔 홀수 값만이 나오게 된다.
    • range (numpy와는 상관없는 python 문법)

      • range는 말 그대로 범위를 지정해 주는 것
      • np.arrange와 헷갈리면 안 된다.
      • 보통 for in의 반복문에서 많이 사용
          arr = np.arange(1, 11)
        arr
        array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
          for i in arr:
              print(i)
      • for문도 arrange와 동일하게 step keyword를 사용하여 중간 단계를 만들어서 출력을 할 수 있다.
  2. 38강. Ch06.numpy - 08. 정렬(sort)

    • 정렬(sort)을 하기 위해서는 위에 사진과 동일하게 sort() 함수를 이용하면 정렬을 사용할 수 있다.

    • 기본적으로. sort()를 사용하게 오름차순 정렬을 수행하게 된다.

    • 그리고 윗 사진처럼. sort()[::-1]로 작성을 하게 되면 내림차순 정렬이 되게 된다.

    • 하지만, 이 값들은 유지가 되지 않기 때문에 특정 변수를 지정해 주어야 하고, 값이 sort 된 상태로 저장하려면, 배열 자체에 sort를 해주면 된다.

    • N차원 정렬

    • 윗 사진은 2차원 배열을 선언을 해주고, 선언한 배열을 정렬해줄 때, 배열 변수 값뿐만 아니라 축 axis 값도 같이 넣게 되면 해당하는 축의 값을 기준으로 정렬이 발생하게 된다.

    • 윗 사진은 axis = 1을 해주면, 각 행에 나열된 값들끼리 만 정렬을 하게 되고, axis = 0을 해주게 되면, 각 행의 첫 번째 값들을 비교하여 정렬을 하게 된다.

    • 사진에서는 각 행의 첫 번째 값들이 5, 4, 10이기 때문에 그에 맞는 4, 5, 10의 순으로 정렬이 되게 된다.

  3. 39강. Ch06.numpy - 09. 인덱스를 반환하는 argsort

    • argsort() 함수는 정렬된 값을 반환하는 것이 아닌 index를 반환하게 된다.
    • 예시 사진은 아래와 같다.
        arr2d = np.array([[5, 6, 7, 8],
                          [4, 3, 2, 1],
                          [10, 9, 12, 11]])
    • 3-1을 보시게 되면 배열 arr2d를 argsort() 함수 안에 넣고, axis = 1을 해주게 되면, 각 행에 나열된 값들의 인덱스 값들이 각 행마다 표현되게 된다.
    • 3-2은 2차원 배열에 sort() 함수와 argsort()함수를 사용하여 각각 나오는 값들을 비교한 것이다.
    • sort()를 사용한 것은 위에서 설명한 것처럼 행의 첫 번째 값들을 비교하여 정렬을 시킨것이고, argsort()를 사용한 것은 sort() 함수와 마찬가지로 각 행의 첫번째 값들을 비교하는 것 까지는 같다. 하지만 다른 점은 비교한 값의 인덱스 값이 그 행의 모든 열에 적용되게 된다.

이로서 오늘 numpy에서의 arrange와 range 비교와 정렬 함수 sort()와 정렬한 뒤에 index값을 나타내는 argsort()에 관한 것을 공부해봤습니다.

  • 데이터 분석

  • 홈페이지에서 강의 찾는 방법
    패스트 캠퍼스 -> 온라인 -> 올인원 패키지 -> [데이터 분석 강의 보러 가기] -> 직장인을 위한 파이썬 데이터 분석 올인원 패키지 Online.

패스트 캠퍼스 - [데이터 사이언스] 직장인을 위한 파이썬 데이터 분석

https://bit.ly/2MJqrMs

댓글