ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [부트캠프] 데이터 분석을 위한 파이썬 활용
    대외활동 및 교육/패스트캠퍼스 데이터 분석 부트캠프 2023. 3. 24. 12:12

    저번 주에 이어 이번 주도 파이썬에 대해 공부하는 시간이었습니다!

    함수를 만드는 것과 데이터 분석에 쓰이는 주요 라이브러리를 배웠습니다.


    함수

    함수가 무엇인지는 다들 아실 거라고 생각합니다.

    파이썬에서도 함수를 만들어서 사용할 수 있는데,

    계속 써야 하는 코드를 복붙해서 사용하지 않고 함수로 만들어둔 뒤 사용할 수 있습니다.

    함수를 만들 땐 def 함수명(인자): 라고 적은 뒤 안에 코드를 적어주면 됩니다.

     

    함수는 4가지로 나뉠 수 있는데,

    1. 일반적인 함수

    2. argument가 없는 함수

    3. return 값이 없는 함수

    4. argument와 return 값이 모두 없는 함수

    이렇게 나뉠 수 있습니다.

     

    하나씩 예제를 살펴보겠습니다.

    def add(a, b): 
        result = a + b 
        return result

    일반적인 함수는 보통 위와 같은 구조를 가집니다.

    add(3, 4) 를 실행하면 7을 반환하게 됩니다.

    def hi():
    	return 'hi'

    위 예시는 인자가 없는 예시입니다.

    hi() 를 실행하게 되면 'hi'가 출력되죠.

    def add(a, b):
    	print(a + b)

    위 예시는 return 값이 없는 예시입니다.

    return 대신 print가 있는 구조입니다.

    def hi():
    	print("Hi")

    위 예시는 인자와 return 값이 모두 없는 예시입니다.

    인자 없이 그냥 hi() 를 실행하게 되면 'Hi'가 출력됩니다.

     

    파일 읽고 쓰기

    데이터 분석을 시작하려면 일단 파일을 열 수 있어야겠죠?

    먼저 새로운 파일을 만드는 것부터 배워보겠습니다.

    새로운 파일을 만들기 위해서는 open 함수로 파일을 열어야 합니다.

    open 함수 안에는 파일을 여는 모드를 지정할 수 있는데, 총 3가지가 있습니다.

    'w' 모드는 write 쓰기 모드로, w 모드로 파일을 열게 되면 기존 내용은 전부 덮어쓰기 된다는 특징이 있습니다.

    'r' 모드는 read 읽기 모드로, 파일의 수정이 불가능한 모드입니다.

    마지막으로 'a' 모드는 add 추가 모드로, 기존 내용에 새로운 내용을 추가할 때 사용할 수 있습니다.

    f = open("new_file.csv", 'w') 
    f.close()

    위 코드를 실행시키면 현재 디렉토리에 new_file.csv 라는 빈 파일이 새로 생긴 걸 보실 수 있습니다.

    코드로 파일 안에 내용을 추가하고 바꾸고 할 수 있다는 점이 신기하더라구요!

     

    파일을 열면 항상 닫아줘야 하는데요,

    with 문을 사용하면 파일을 열고 닫는 걸 자동으로 처리하게 해준다고 합니다.

    예를 들어보겠습니다.

    def csv_maker(city, temperature):
        with open("forecast.csv", "w", encoding='utf-8') as f:
            f.write(city + ', ' + str(temperature) + '\n')

    도시의 이름과 현재 기온을 입력하면 forecast.csv 파일을 생성해서

    값을 지정하는 함수를 코드로 작성해봤습니다.

    이렇게 with를 사용하면 with 블록을 벗어나면 자동으로 파일이 닫히기 때문에

    f.close() 를 적지 않아도 되어 편리하죠.

     

    데이터 분석의 주요 라이브러리

    다음으로 데이터 분석에서 쓰이는 주요 라이브러리에 대해 배웠는데요!

    현재 시간을 실수 형태로 반환해주는 time 라이브러리,

    날짜로 표현할 때 사용할 수 있는 datetime 라이브러리,

    환경 변수나 디렉토리 등 OS에 관한 제어가 가능한 os 라이브러리 등이 있습니다.

     

    많은 라이브러리 중 numpy와 pandas를 집중적으로 살펴봤습니다.

     

    NumPy 라이브러리

    numpy 라이브러리는 배열을 다루는 라이브러리라고 합니다.

    np.array() 함수를 이용해 다양한 차원의 배열을 만들 수 있는데요.

    배열은 인덱싱과 슬라이싱도 가능하다고 합니다.

     

    가장 헷갈리고 중요하다고 생각되는 reshape에 대해서도 배웠는데요!

    배열의 모양을 바꾸는 reshape을 할 때는 크기가 잘 맞아야 한다는 특징이 있습니다.

    예를 들어, arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])이라는 1차원 배열이 있다고 할 때,

    2차원 배열로 바꾸려면 arr.reshape(2, 5)와 같이 할 수 있는데

    reshape 함수에 들어가는 숫자들의 곱(2*5)이 기존 배열의 크기(10)와 같아야 한다는 뜻입니다.

     

    배열끼리 합치는 것도 가능합니다.

    np.concatenate()을 이용하면 배열들이 연결되는 것을 보실 수 있습니다.

    np.concatenate() 안에는 어느 방향으로 합칠 지 정해주는 axis를 넣을 수 있습니다.

    axis = 0을 지정해주면 행 기준으로 위에서 아래로 합쳐줍니다.

    axis = 1을 지정해주면 열 기준으로 왼쪽에서 오른쪽으로 합쳐줍니다.

    axis를 생략하는 기준 axis = 0가 디폴트이니 참고해주세요!

     

    np.sort() 함수를 이용하면 배열의 값들을 순서대로 정렬할 수 있습니다.

    숫자와 문자가 오름차순으로 정렬됩니다.

    만약 내림차순으로 정렬하고 싶다면 sort를 이용해서 일단 순서대로 정렬한 뒤,

    [::-1]로 슬라이싱해서 순서를 바꿔줄 수 있습니다.

     

    Numpy에서 굉장히 유용한 기능 중 하나로 filtering이 있습니다.

    필터링은 기존 배열에서 특정 조건에 만족하는 요소들을 필터링해서 새 배열을 만드는 것을 말합니다.

    arr = np.array([10, 20, 30, 35, 40])
    x = [True, True, False, False, False]
    
    newarr = arr[x]

    이렇게 arr이라는 배열이 있고 불리언 타입으로 이루어진 리스트 x가 있을 때

    arr[x]을 출력하면 arr에서 True에 해당하는 값들만 필터링이 됩니다.

    이 점을 이용해서 아래와 같이 쉽게 새 배열을 만들 수 있습니다.

    newarr = [x for x in arr if x > 30]

    이렇게 list comprehension을 이용해서도 똑같은 결과를 만들 수 있습니다.


    이상으로 이번 주에 배운 내용들이었습니다 😊

    이제 정말 본격적으로 파이썬 데이터 분석이 시작될텐데, 기대가 되네요!

    파이썬 문법들은 차근차근 정리 중이니 파이썬 카테고리에 있는 포스팅들 보시면서 기다려주세요 🙌

    댓글

Designed by Tistory.