파이썬 종합반 강의
4주차
공부 내용 : https://colab.research.google.com/drive/1aI1kKNBwmDTJIk4UpGkf4gtXeKrgOml0#scrollTo=b5Mf0aikbax7
오늘 수강한 파이썬 종합반 4주차에서는 함수에 대해서 배웠습니다.
함수란 입력을 받아 원하는 처리를 한 후 출력을 내보내는 일련의 작업을 수행하는 코드 블록으로 프로그램 내에서 특정한 기능을 수행하기 위해 코드를 논리적으로 그룹화하여 재사용 가능한 형태로 정의합니다.
함수가 필요한 4가지 이유가 있는데요! 코드 재사용, 모듈화, 유지 보수 용이성, 기독성 향상의 이점이 있어 함수를 사용합니다.
다음은 함수의 정의와 호출방법입니다.
def 함수이름(매개변수1, 매개변수2, ...):
# 함수 내부에서 수행할 작업
return 결과값
def를 사용하여 함수를 정의하고, 함수 내부에서 필요한 작업을 수행한 후 return을 사용하여 결과값을 반환할 수 있습니다.
3주차까지는 바로바로 이해됐는데 4주차부터는 어려워서 예시 문제도 가져와 봤습니다...!
주어진 문자열에서 각 문자의 출현 빈도를 딕셔너리로 반환하는 예제입니다.
def char_frequency(string):
freq_dict = {}
for char in string:
if char in freq_dict:
freq_dict[char] += 1
else:
freq_dict[char] = 1
return freq_dict
# 함수 호출
print(char_frequency("hello"))
출력하면 {'h': 1, 'e': 1, 'l': 2, 'o': 1}와 같이 나오게 됩니다.
다음으로, 전역변수와 지역변수에 대해 배웠습니다.
전역변수는 프로그램 전체에서 접근 가능한 변수로 어디서든지 사용할 수 있고, 지역변수는 특정한 범위에서만 접근 가능한 변수로 해당 범위를 벗어나면 사용할 수 없습니다.
전역변수는 프로그램의 어디서든지 접근할 수 있어 여러 함수에서 공통적으로 사용되는 값을 저장할 때 유용한 반면 지역함수는 함수 내에서만 사용되어 해당 함수에서만 유효하고 다른 함수나 코드 블록에서는 사용할 수 없습니다.
# 전역변수 예시
global_var = 10
def global_example():
print("전역변수 접근:", global_var)
global_example()
# 출력: 전역변수 접근: 10
# 지역변수 예시
def local_example():
local_var = 20
print("지역변수 접근:", local_var)
local_example()
# 출력: 지역변수 접근: 20
# 함수 내에서 전역변수를 수정하는 예시
def modify_global():
global global_var
global_var = 30
print("함수 내에서 수정된 전역변수:", global_var)
modify_global()
print("수정된 전역변수 확인:", global_var)
#출력 : 함수 내에서 수정된 전역변수: 30
수정된 전역변수 확인: 30
함수 내에서는 global을 사용하여 전역변수를 수정할 수 있습니다.
인수와 매개변수
매개변수 : 함수를 정의할 떄 함수가 받아들이는 값을 지정하는 변수로 함수를 정의할 때 매개변수를 정의함
인수 : 함수를 호칭할 때 함수에 전달되는 값으로 전달인자라고도 함
함수 호출 시 전달되는 인자
위치 인수 : 함수 정의에서 매개변수의 위치에 따라 전달되는 인수로 인자의 값이 함수의 매개변수에 순서대로 매핑됨
키워드 인수 : 함수를 호출할 때 인수를 순서대로 전달하는 대신에 특정 매개변수에 값을 할당하여 전달
가변인수
여러 개의 인수들을 받을 수 있는 함수를 만들기 위해 활용하고, 파이썬에서는 *args와 **kwargs를 사용합니다.
*args : 함수를 호출할 때 임의의 개수의 위치 인수를 정달, 함수 내에서 튜플로 위치 인수들을 받아 처리함
**kwargs : 함수를 호출할 때 임의의 개수의 키워드 인수를 전달, 함수 내에서 딕셔너리로 키워드 인수들을 받아 처리함
다음은 *args를 활용한 예시입니다.
def sum_values(*args):
total = 0
for num in args:
total += num
return total
result = sum_values(1, 2, 3, 4, 5)
print("합계:", result) # 출력: 합계: 15
아티클
데이터 분석가가 갖춰야 할 9가지 역량 | 요즘IT
요약
데이터 분석가에게 필요한 역량 9가지를 하드 스킬 5개, 소프트 스킬 4개로 나누어 설명함
데이터 분석가에게 필요한 하드 스킬
1. 사용 언어
데이터 추출 및 간단한 분석을 할 때는 SQL, 요인 분석, 예측 모델링 등 심화된 분석이 필요할 때는 파이썬을 주로 사용
2. 통계학
상관관계, 회귀 분석, 인과 관계 등의 통계 개념은 데이터 분석에서 EDA(탐색적 데이터 분석) 단계를 진행할 때 활용
귀무가설, 대립가설, 검정력 등의 기초 통계학 개념은 A/B 테스트에서 활용
3. 도메인 및 비즈니스에 대한 이해
도메인에 따라 정의해야 할 문제와 비즈니스가 다름
비즈니스와 프로덕트는 직결되어 있으며 관련된 재무, 마케팅 등 기본적인 비즈니스 지표 및 KPI 성공 지표(MAU, Gross Margin 등)에 대해 알고 있어야 함
대부분의 지표는 비즈니스 지표의 증감 원인을 파악하기 위해 활용되며 서비스 전반을 이해하는데 꼭 필요
4. 툴을 다루는 역량
데이터 기반 의사결정을 빠르게 할 수 있는 환경을 위해 툴들을 잘 다루는 것이 필요하고 데이터 분석에 용이한 데이이터 마트 설계와 자동화 등 툴을 잘 활용하는 것이 좋음
5. 업무 자동화와 데이터 엔지니어링
다양한 부서의 일회성 분석 요청에 대한 대응, 데이터 정합성 및 퀄리티 확인, 데이터 플랫폼 운영 이슈를 처리해야 함. 이는 자동화로 해결되고 있는 추세이지만 개발자와의 소통이 필요함
데이터 분석가에게 필요한 소프트 스킬
1. 커뮤니케이션 능력
데이터의 언어를 다양한 직무의 관점으로 바라보고 모두가 이해할 수 있는 언어로 바꿀 수 있어야 함
2. 협업 능력과 태도
다양한 직무의 팀원들과 협업을 할 때 모두가 잘 이해할 수 있는 소통 방식과 태도를 갖춰야 하며, 데이터를 이해하기 쉬운 언어로 바꿀 수 있어야 함
3, 문제 정의 및 문제 해결 능력
데이터 분석 프로세스 : 문제 정의-> 가설 수립-> 문제 해결 순이므로 문제를 논리적으로 정의해야 함
4. 보고서 작성
분석 결과를 누구나 이해할 수 있는 비즈니스 보고서를 작성하여 공유함
보고서를 비즈니스 관점에서 작성하면 협업하기도 쉽고 이해관계자들을 설득하기도 쉬워짐
주요 포인트
데이터 분석가에게 필요한 9가지 역량에 대해 알아봤고 이는기업이나 팀마다 조금씩 다를 수 있으며 IT 기술의 발전이 가속화되면서 데이터 분석가의 역량도 계속 변하고 있다.
핵심 개념
데이터 분석가에게 필요한 역량
용어 정리
EDA : Exploratory Data Analysis, 수집한 데이터가 들어왔을 때 다양한 각도에서 관찰하고 이해하는 과정으로 데이터를 분석하기 전에 그래프나 통계적인 방법으로 자료를 직관적으로 바라보는 과정
[출처: https://eda-ai-lab.tistory.com/13 ]
A/ B테스트 : 두 가지 이상의 변형을 비교하여 사용자 행동, 전환율, 클릭률 등 특정 지표에 미치는 영향을 측정하는 실험 방법으로 데이터 기반의 의사 결정을 가능하게 하며, 다양한 분야에서 활용됨
[출처 : [데이터분석] A/B 테스트의 장점과 단점, .. : 네이버블로그 ]
SaaS : software as a service
BI 툴 : Business Intelligence tool, 데이터를 통합, 분석해 기업 활동과 연관되어 있는 결정을 돕는 툴로, 기업의 내부, 외부의 데이터를 수집, 정제, 분석해 보다 효율적인 결정을 할 수 있게 하는 역할
[출처 : 직장인 국비지원컴퓨터학원, 직장인이라면 BI 툴 배우기 추천!|]
데이터 마트 : 조직의 사업부와 관련된 정보를 포함하는 데이터 스토리지 시스템
[출처 : 데이터 마트란 무엇인가요? - 데이터 마트 설명 - AWS ]
데이터 파이프라인 : 데이터를 수집하고 처리하여 분석이나 머신 러닝 모델 학습 등에 활용할 수 있도록 하는 일련의 과정
데이터 과학 및 머신 러닝 프로젝트에서 중요한 부분이며, 효율적인 데이터 처리 및 관리를 가능하게 함
[출처 : 데이터 파이프라인이란 — 과거의 나를 위해 ]
손보미 튜터님의 예제로 익히는 파이썬
24일에 풀다 만 문제를 풀고 함수에 대해 배웠습니다.
예제는 자연수를 뒤집어 배열로 만들기와 자릿수 더하기입니다.
사실 조금 귀찮아서 따로 혼자 해보지는 않고 설명만 들었습니다.
그리고 함수 파트에서 아직 강의에서 배우지 않은 람다함수에 대해 나왔습니다. 이 부분은 내일 강의를 들으면서 다시 공부해야 할 것 같습니다..!
오늘따라 노트북이 오류도 자주 나고 집중도 안돼서 제대로 듣지 못해서 내일 다시 복습을 해야 겠습니다...ㅜ
파이썬 개인 과제
오늘 처음으로 개인 과제를 받았습니다. 기한은 30일까지지만 오늘 최대한 다 풀었습니다.
3-3 문제가 어려워서 아직 풀지 못했는데 내일 강의까지 들으면 풀 수 있겠죠?!!
https://colab.research.google.com/drive/1zaWrQcII7Ptv5jM08OTEBU9O33s7UBf5#scrollTo=wTpzUHvzdTw7
문자열 메서드인 swapcase()를 사용하면 굳이 반복문을 사용하지 않고 쉽게 대소문자를 바꿀 수 있다.
text = "Hello World"
result = text.swapcase()
print(result)
개인 공부
프로그래머스 코딩 기초트레이닝 day1을 풀어보았습니다.
새로 알게 된 점이 있어 남겨보려고 합니다.
a, b = map(int, input().strip().split(' '))
print("a =", a)
print("b =", b)
여기서 .strip()은 입력받은 문자열의 앞뒤 공백을 제거하고 .split(' ')은 입력받은 문자열을 공백(' ') 기준으로 나누어 리스트로 반환합니다. map 함수는 리스트의 각 요소를 int로 변환합니다.
str = input()
result = ""
if len(str)>=1 and len(str)<=20:
for char in str:
if char.isupper(): # 대문자인지 확인
result+=char.lower() # 대문자라면 소문자로 변환 후 result에 추가
elif char.islower(): # 소문자인지 확인
result+=char.upper() # 소문자라면 대문자로 변환 후 result에 추가
else:
result+=char
print(result)
위 예제는 대문자는 소문자로, 소문자는 대문자로 변환하여 출력하는 예제입니다. 어려워서 gpt의 힘을 빌려서 풀었습니다...ㅎ
앞으로도 시간이 된다면 프로그래머스의 코딩 문제들을 풀어봐야겠습니다!!
'내일배움캠프_QAQC 1기 > TIL' 카테고리의 다른 글
| [12/30] TIL_강의, 과제 해설 (3) | 2024.12.30 |
|---|---|
| [12/27] TIL_강의, 개인 과제, 세션 복습 (3) | 2024.12.27 |
| [12/24] TIL_강의, 아티클, 세션 (2) | 2024.12.24 |
| [12/23] TIL_강의, 세션 (1) | 2024.12.23 |
| [12/20] TIL_커리어 스터디, 발표 (1) | 2024.12.23 |