지난 주차의 내용이 '파이썬의 기초' 였다면, 이번 주차는 '파이썬의 응용' 을 학습하였습니다.
4L 회고 방식으로 진행하겠습니다.
Liked
이전까지 파이썬의 기초를 학습하다가 본격적으로 파이썬의 내장 모듈을 사용하면서 다양한 예제문과 실습 과제를 실행하는 것이 매우 좋았습니다. 특히, 다양한 환경에서의 실습이 이후 혼자 학습할 때 겪을 수 없는 것들을 배웠기 때문에 많은 도움이 되었습니다.
pandas의 DataFrame 형식에서 apply를 활용한 예제문을 실행해서 익히는 방법을 조금이라도 이해할 수 있어서 좋았습니다.
JOIN 관련 SQL의 내용을 미리 알 수 있어 좋았습니다. 추후에 SQLD 자격증 공부에 도움이 되었습니다.
JOIN 관련 개념 이해 링크
Pandas 모듈의 전반적인 내용을 배우고, 크롤링의 예시 코드를 받아서 직접 확인해볼 수 있는 좋은 기회가 있어서 좋았습니다.
데이터 시각화관련 수업은 상당히 많은 내용이었지만 다양한 예제들을 통해 달라지는 데이터 시각화 결과를 즉시 볼 수 있어 좋은 경험이었습니다.
Lacked
국민취업지원제도 신청으로 관련 상담을 받았고, 이 상담을 위해서 2번의 수업 내용 도중 조퇴, 지각을 했어서 그 시간동안 못들은 내용에 대해 개인 복습을 진행했지만, 당시의 강의를 듣지 못한 것이 아쉬웠습니다.
지난주와 다른 파이썬의 심화 내용 학습으로 인해 순간 복잡스러움을 느꼈고, 피로감을 느껴서인지 졸림이 오는 위기를 경험했습니다.
복습 내용 중 neaxis, axis, 다양한 배열 연결의 차이에 대해 어제 하지 못한 학습 부분이어서 혼란을 겪었습니다.
Learned
파이썬 실행 환경이 Pycharm에서 colab으로 변경되었습니다.
Numpy는 데이터 분석 단계에서 자주 쓰이는 패키지 툴 입니다.
이전에 배운 리스트 자료형을 Numpy의 array(배열)을 사용해서 특정한 유형의 데이터를 보다 효율적으로 다루는 법을 배웠습니다.
$pip install numpy
# 만약, anaconda 사용 -> numpy가 기본 설치됨
# or colab 사용 -> colab에는 numpy가 기본 내장되어있음.
import numpy as np
np.array([1,2,3])
1,2,3 차 배열을 생성하고 각각의 요소들을 벡터화 연산을 통해 응용하는 것을 학습하였습니다.
이외에 배열의 복사, 인덱싱, 슬라이싱, 검색 등 배열을 탐색할 수 있는 방법을 배웠습니다.
다양한 방식의 배열 생성 방식과 변형 방법을 알 수 있었습니다.
배열의 연산, Numpy에서 서로 다른 크기를 가진 두 배열의 사칙 연산을 지원하는
-> "브로드캐스팅"이 실행됩니다. (<- 크기가 작은 배열을 자동으로 반복 확장하여 크기가 큰 배열에 맞추는 방법)
a = np.arange(10)
a *10
# -> array([0,10,20,30,40,50,60,70,80,90]) 의 결과값을 가질수 있게됨.
# 브로드캐스팅으로 인해, a, 크기 10을 가진 배열과 10 하나의 곱연산이
# a 배열의 각 요소에 각각 실행될 수 있게 되었습니다.
sort : 배열 안의 원소를 크기에 따라 정렬하여 새로운 배열 생성
2차원 이상인 경우에는 행이나 열을 각각 따로따로 정렬
axis=0 : 각각의 행을 따로따로 정렬
axis=1 : 각각의 열을 따로따로 정렬
axis=-1 : 가장 안쪽(나중)의 차원 (default)
np.random.
에 들어있는 메서드들의 다양한 예제문을 작성하여 학습하였습니다.np.random.rand(~~)
np.random.randint(~~)
np.random.choice(~~)
np.random.randn(~~)
# $pip install pandas
import pandas as pd
pd.Series(range(10,14))
# 0 10
# 1 11
# 2 12
# 3 13
# dtype: int64
# 코드에 예제에서 확인할 수 있듯이 딕셔너리 자료형과 Numpy의 1차원 배열의 특징들 보입니다.
import pandas as pd
df = pa.DataFrame(data, columns = , index = )
df
데이터프레임 내 에서 인덱싱, 슬라이싱 하는 방법을 배웠습니다. 처음에 [ ]에 들어가는 값이 헷갈렸는데 뒤에 '데이터 프레임 조작' 부분에서 'loc 인덱서' 예제를 실행하면서 점차 앞부분을 이해하는데 도움이 되었습니다.
데이터프레임을 조작하는 각종 메서드들을 학습하고, 예제문, 예시문제를 통해 학습을 완료했습니다.
pandas 데이터 프레임의 합성(merge)에 대한 다양한 예제문과 실습하는 과정을 경험할 수 있었습니다.
import pandas as pd
# 첫 번째 데이터프레임 생성
df1 = pd.DataFrame({'A': [1, 2, 3],
'B': [4, 5, 6]})
# 두 번째 데이터프레임 생성
df2 = pd.DataFrame({'A': [1, 3, 5],
'C': [7, 8, 9]})
# 'A' 열을 기준으로 데이터프레임 합성
merged_df = pd.merge(df1, df2, on='A')
print(merged_df)
### 출력 결과
A B C
0 1 4 7
피봇테이블 :
데이터 열 중에서 두 개의 열을 각각 행과 열 인덱스로 사용해서 데이터를 조회해 놓은 것. ex) excel
피봇테이블 pivot (행 인덱스로 사용할 열이름, 열 인덱스로 사용할 열 이름)
그룹분석 :
조건에 맞는 데이터가 하나 이상일 경우에 -> 데이터 그룹을 이룸 (피봇 테이블 형태로 표현을 X)
그룹의 특성을 보여주는 (통계치, 계산...) => 그룹 분석 (group analysis)
group -> groupby
데이터 시각화 :
Matplotlib 모듈을 활용해서 데이터셋을 다양한 차트, 플롯(plot)으로 표현하는 것을 다양한 예제문과 함께 학습했습니다.
데이터의 종류 :
수치형 데이터 : 연속형 데이터, 이산형 데이터
범주형 데이터 : 순서형 데이터, 명목형 데이터
탐색적 데이터 분석(Exploratory Data Analysis)과 그래프 :
그래프, 통계 수치 등을 활용해서 데이터를 파악하는 과정
탐색적 데이터 분석 단계에서는 다양한 그래프 그림.
그래프는 데이터를 한눈에 파악하는데 도움을 줌 (경향성)
1. 데이터가 어떻게 구성되어 있는지
2. 어떤 변수(피처)가 중요한지
3. 어떤 피처를 제거할지
4. 어떻게 새로운 변수를 만들지 등
모델링에 필요한 다양한 정보를 얻을 수 있다.
모델링 : '변수들' -> 답을 이끌어내는 과정
다양한 종류의 시각화(분포 시각화, 공간 시각화, ...등)을 배울 수 있었고, 데이터 종류에 따른 시각화에 사용되는 서로 다른 그래프, 플롯들에 대해 다양한 예제문과 함께 학습할 수 있었습니다.
Streamlit 에서 데이터 시각화, 차트를 표현할 때 plotly를 활용하면 퀄리티가 좋은 결과물을 출력할 수 있음을 알 수 있었습니다.
Longed for
Streamlit을 활용해 사이트 개발에 대해 좀 더 알아보기, Numpy, Pandas, 데이터 시각화 등을 활용해서
수업 중 잘 이해가 안갔던 내용들 chatGPT를 통해 정리해서 블로그 업로드
알고리즘 문제 풀기