목록파이썬 (44)
오랑우탄의 반란
이전 포스트에 이어 몇 가지 상관관계 종류를 살펴보겠습니다. 피어슨 상관계수두 연속형 변수 간의 선형 관계 측정절대값이 1에 가까울수록 높은 상관관계, 0은 선형 관계가 없음을 의미 import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsfrom scipy.stats import pearsonr# 예시 데이터 생성np.random.seed(0)study_hours = np.random.rand(100) * 10exam_scores = 3 * study_hours + np.random.randn(100) * 5# 데이터프레임 생성df = pd.DataFrame({'Study Hours': study_h..
이전 포스트에 이어 기본적인 회귀 종류를 살펴보겠습니다. 단순선형회귀독립변수 x와 종속변수 y 사이의 관계를 직선 형태로 모델링한 방법데이터가 직선적 경향을 따를 때 사용, 간단하고 해석이 용이함 가지고 있지 않는 데이터에 대해 예측할 수 있음 Y = β0 + β1Xex) 광고비x와 매출y의 관계 분석 import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom sklearn.linear_model import LinearRegressionfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import mean_squared_error, r2_score# 예..
이전 포스트에 이어 데이터의 다양한 분포를 살펴보겠습니다. 모집단과 표본모집단과 표본의 개념을 시각화된 그래프를 사용해 알아보겠습니다. numpy random 함수로 임의의 모집단을 생성해주고, 그 중에서 choice 로 랜덤한 표본을 추출해줍니다.이때 모집단의 평균, 편차, 그리고 개수도 임의로 지정해줍니다. import numpy as npimport matplotlib.pyplot as plt# 정규분포의 모집단 생성 (예: 국가의 모든 성인의 키 데이터)population = np.random.normal(170, 10, 1000) #평균, 편차, 개수# 표본 추출sample = np.random.choice(population, 100) #샘플링 함수plt.hist(population, bins..
오늘도 오랑이는 문제를 풉니다. 소수 만들기 풀이 과정해당 문제는 크게 두 파트로 나눠서 풀어야 합니다.nums 의 값 3개씩 조합소수 판별첫번째 조건에 대한 코드를 짜봅니다.def solution(nums): for i in range(len(nums)): for j in range(i+1,len(nums)): for k in range(j+1,len(nums)): num = nums[i] + nums[j] + nums[k] 예전에 풀었던 삼총사 문제와 동일한 방식입니다. 어떤 수 n이 소수가 되려면 인수가 1과 자기 자신 n 뿐이어야 합니다. 또한 0 과 1 은 소수가 될 수 없습니다. 즉, n 은 2 이상의 숫자가 되며 그 인수..
피벗 테이블에 대해 알아보겠습니다. Parametersimport pandas as pdpd.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All', observed=_NoDefault.no_default, sort=True)pd.pivot_table()data: 데이터프레임 오브젝트values: 데이터프레임의 특정 칼럼명 (복수 가능)* index 행(인덱스)에 들어가는 항목, group by 개념* columns 열에 들어가는 항목, group by 개념 * aggfunc 값에 적용되는 집계 함수fill_val..
오늘도 오랑이는 문제를 풉니다. 모의고사 풀이 과정각 수포자의 답이 answers 리스트와 일치하는지 비교일치할 경우 리스트 형태로 각각 점수 부여부여된 점수 중 최고값에 해당하는 인덱스값 + 1 을 리스트로 반환 위 조건에 따라 코드를 설계해봅시다.우선 전체 점수와 각 수포자의 답을 리스트 형태로 저장해줍니다. def solution(answers): answer = [] score = [0,0,0] g1 = [1,2,3,4,5] g2 = [2,1,2,3,2,4,2,5] g3 = [3,3,1,1,2,2,4,4,5,5] 이제 조건을 나열해봅시다. 각 수포자에 대해 answers[ i ] 와 g[ i % 리스트 길이] 를 비교해줍니다. 나머지값으로 answers 길이가..
오늘도 오랑이는 문제를 풉니다. 과일 장수 풀이 과정score 를 순서대로 나열개수 m 씩 쪼개고 그 중 최솟값에 대해 더해서 m 을 곱한 값을 리턴위의 순서대로 진행하는 코드를 생각했습니다. 차례대로 코드를 짜봅시다. def solution(k, m, score): score.sort(reverse=True) return score #순서 확인 설명을 위한 편의 상 answer 를 리스트로 지정해서 리스트에 반복문의 결과물이 적재되는 과정이 보이도록 수정했습니다. def solution(k, m, score): answer = [] score.sort(reverse=True) for i in range(len(score)//m): answer.append(mi..
오늘도 오랑이는 문제를 풉니다. 2016년 풀이 과정필수는 아니지만 없으면 허전하기 때문에 2016년 달력을 한 번 봅시다.이 문제에서 주목해야 할 부분은 아래 두 가지입니다:날짜 % 7 = 1 은 금요일각 월의 날짜들은 이어지기 때문에 이전 월의 일수에 날짜를 더한 값 = 날짜즉, 요일과 월별 일수를 나열한 리스트 2개를 작성해주고 여기서 값을 추출해서 계산해주는 방식으로 풉니다.아까 나머지가 1일 때 금요일이기 때문에 리스트 인덱스와 맞춰서 작성해줍니다.또한 이전 달의 날짜에 b 를 더해야 하기 때문에 month 리스트는 0부터 시작하도록 해줍니다. def solution(a, b): weekday = ['THU','FRI','SAT','SUN','MON','TUE','WED'] mont..