요약/나만의 인사이트
- map은 반복가능한(차례차례 순회가능한) 자료형을 하나씩 꺼내 함수를 적용시킬 수 있는 내장함수이다.
- 함수를 적용시키면 객체에 반환한다. 다만 미리 반환해 두는 게 아니라 호출 시 반환하는 형태이다.
- .strip()은 문자열 앞뒤 공백을 삭제해주는 내장함수이다. “ ab “ → “ab”
- .split()은 문자열을 공백으로 나눠 리스트에 반환해주는 내장함수이다. “a, b” → [’a’, ‘b’]
- 다양한 상관계수가 있고 선형, 비선형 관계를 나타낼 때 사용한다.
- 가설검정 시 다양한 주의점들이 있는데 재현 가능성의 보장, 선택적 보고 지양, 원하는 결과가 나올 때까지 자료수집하는 것을 지양 등이 있다.
새롭게 알게 된 것
- 상관계수
- 피어슨 상관계수
- x와 y의 선형 관계를 보여줌.
- -1에서 1사의 값을 가지며, -1, 1은 완전한 선형 관계를 의미.
- 0은 선형 관계가 없음을 의미
- 히트맵을 시각화를 활용해볼 수 있음.
- 비모수 상관계수
- 데이터가 정규분포를 따르지 않을 때 사용하는 상관계수
- 변수들이 순서형 데이터일 때 사용하는 상관계수
- 대표적으로 스피어만 상관계수와 켄달의 타우 상관계수가 있음.
- 상호정보 상관계수
- 두 변수가 범주형 변수일 때
- 비선형적이고 복잡한 관계를 탐지하고 싶을 때 사용
- 피어슨 상관계수
- 가설검정의 다양한 주의점
- 재현 가능성
우연히 결과가 나오는 것이 아닌, 항상 일관된 결과가 나오는가? - p-해킹을 조심한다.
p-해킹이란 데이터 분석을 반복해서 p-값을 인위적으로 낮추는 행위를 말한다.
p-해킹은 데이터 분석 결과의 신뢰성을 저하시킨다. - 선택적 보고를 하지 않아야 한다.
유의미한 결과만 공개하거나 결과를 보면서 가설을 새로 설정했는데 처음부터 설정한 가설이라고 얘기하지 말아야 한다. - 원하는 결과가 나올 때까지 자료를 수집하는 것을 조심해야 한다.
- 탐색과 검증을 분리하면 좋다.
탐색과정에서 발생한 데이터 패턴이 검증 데이터에서도 유효한지 확인 가능하다.
- 재현 가능성
특히 어려웠던 것
- 파이썬 문제 map, strip, split
- 문제
- 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.
- 틀린이유
- 각종 주요 함수에 대해 제대로 숙지하지 못했다.
- 따라서 아래 정리한 주요 함수에 대한 예제를 풀어보았다.
- 주요 함수
- input()
- 사용자로부터 입력 받기
- 문자열로 저장됨
text = input() text # 위에서 안녕이라고 입력할 시 안녕이 출력 - .strip()
- 문자열 양 끝의 공백이나 지정된 문제 제거
text = " Hello, world! " stripped_text = text.strip() #Hello, world! - .split()
- 문자열을 공백()기준으로 나눠서 나눠 리스트로 반환
text = "Hello world" splited_text = text.split() # ['Hello', 'world'] - map(적용할 함수, 반복 가능한 자료형)
- 하나씩 꺼내서 함수에 넣는다.
- 즉 반복 가능한 자료형에 함수 적용
a, b = map(int, ['214', '5345']) # int('214'), int('5345')를 단번에 시행하여 a,b에 할당 print(a) #214 print(b) #5345- (더 이해하기) 리스트와 맵 객체(=이터레이터)
- list = [1, 2, 3]
- 이미 모든 값이 메모리에 저장되어 있음.
- map()
- 리스트와 다르게 즉시 모든 결과를 계산해서 저장하지 않는다.
- 필요할 때 그때그때 하나씩 변환해서 내보내는 객체를 반환한다.
- 이것을 이터레이터라고 한다.
#m은 리스트가 아니라 map 객체이다. m = map(int, ['3', '5', '7']) #지금 당장 결과를 계산하지 않고, 반복문을 돌리거나 요소를 꺼낼 때 "필요한 순간"에 int()를 적용해 변환해준다. m = map(int, ['3', '5', '7']) print(list(m)) # [3, 5, 7] for x in m: print(x) #3 5 7
- list = [1, 2, 3]
- (더 이해하기) iterable
- 하나씩 순서대로 꺼낼 수 있는 객체
- 리스트
- 문자열
- 튜플
- 딕셔너리
- 집합
- range 객체
- map, filter
- 반복가능한 객체라고도 한다.
- 따라서 for문에 모두 쓸 수 있다.
- 하나씩 순서대로 꺼낼 수 있는 객체
- for _ in
- 파이썬에서 자주 쓰이는 패턴으로, 반복은 하지만 반복 변수는 사용하지 않을 때 씀.
for _ in range(b): print('*' * a) # 총 b번 반복 # 반복 변수는 사용하지 않아 _로 생략
- input()
- 풀이
a. b = map(int, input().strip().split()) for _ in range(b): print(a * '*') ''' 1) input() 사용자료부터 숫자를 입력 받아 문자열로 저장 ' 5 3' 2) .strip() 앞뒤 공백은 제거하기 '5 3' 3) .split() 공백을 기준으로 리스트로 반환 ['5, '3'] 4) a, b = map(int, ...) 이터러블한 자료형 요소를 각각 int함수 적용 int('3'), int('5')하여 a,b에 각각 담는다. 5) for _ in range(b) b만큼 반복 반복해서 담을 변수는 없음 ( _ 로 표시) ''' - 문제
다음에 적용해 볼 것
- [x] 파이썬 새롭게 배운 함수 관련 예제 풀어보기
'기타 > 통계, 머신러닝' 카테고리의 다른 글
| 250701_기초 통계학(선형회귀, 다중선형회귀), 파이썬(클래스) (1) | 2025.07.01 |
|---|---|
| 250630_기초 통계학(모수 추정, 중심극한 정리, 표본오차와 표준편차) (7) | 2025.06.30 |
| 250626_기초 통계학(유의성 검정, 회귀) (4) | 2025.06.26 |
| 250625_기초 통계학(다양한 분포들) (2) | 2025.06.25 |
| 250624_기초 통계학(상관관계, 기술통계, 추론통계) , SQL 파이썬 코드카타 (0) | 2025.06.24 |