-
데분 파이썬 - 4강 / 함수파이썬 정리/본캠프 2024. 4. 25. 16:18
- 함수의 개념
- 함수는 입력을 받아 원하는 처리를 한 후 출력을 내보내는 일련의 작업을 수행하는 코드 블록입니다.
- 프로그램 내에서 특정한 기능을 수행하기 위해 코드를 논리적으로 그룹화하여 재사용 가능한 형태로 정의합니다.
- 함수의 필요성
- 코드 재사용: 반복되는 코드를 함수로 정의하여 여러 곳에서 재사용할 수 있습니다.
- 모듈화: 프로그램을 여러 개의 작은 모듈로 나누어 개발 및 관리할 수 있습니다.
- 유지 보수 용이성: 함수는 각각의 기능을 독립적으로 정의하므로, 수정이나 확장이 필요할 때 해당 함수만 수정하면 됩니다.
- 가독성 향상: 함수는 코드의 의도를 명확하게 표현할 수 있으며, 복잡한 작업을 함수로 분해하여 이해하기 쉽게 만듭니다.
def char_frequency(str) : freq_dict = {} for char in str : if char in freq_dict : freq_dict[char] +=1 else : freq_dict[char] = 1 return freq_dict # 문자열을 받아서, 하나의 글자로 나눈 뒤 # dict 내 글자가 존재하지 않으면 정의하고 # dict 내 글자가 존재하면 그 갯수를 하나 올린다. print(char_frequency('infrastructure')) {'i': 1, 'n': 1, 'f': 1, 'r': 3, 'a': 1, 's': 1, 't': 2, 'u': 2, 'c': 1, 'e': 1}
- 전역변수 (Global Variables)
- 전역변수는 프로그램 전체에서 접근 가능한 변수로, 어디서든지 사용할 수 있습니다.
- 전역변수는 프로그램이 시작될 때 생성되고, 프로그램이 종료될 때까지 메모리에 유지됩니다.
- 전역변수는 프로그램의 어디서든지 접근할 수 있으므로, 여러 함수에서 공통적으로 사용되는 값을 저장할 때 유용합니다.
- 하지만 너무 많은 전역변수를 사용하면 코드의 가독성이 떨어지고 디버깅이 어려워질 수 있습니다.
- 지역변수 (Local Variables)
- 지역변수는 특정한 범위(예: 함수 내부)에서만 접근 가능한 변수로, 해당 범위를 벗어나면 사용할 수 없습니다.
- 지역변수는 해당 범위에서 생성되고, 범위를 벗어나면 메모리에서 사라집니다.
- 함수 내에서 정의된 변수는 해당 함수 내에서만 사용 가능한 지역변수입니다.
- 지역변수는 함수 내에서만 사용되므로, 해당 함수에서만 유효하고 다른 함수나 코드 블록에서는 사용할 수 없습니다.
- 지역변수는 함수가 실행될 때 생성되고, 함수가 종료되면 메모리에서 제거되므로 메모리 관리에 효율적입니다.
매개변수 / 인수
변수 / in수
ex) x / 10
Positional Arguments
매개변수(parameter)의 위치에 따라 전달되는 인수 - 순서대로 맵핑 됨
Keyword Arguments
순서대로 전달하는 대신 특정 매개변수에 값을 할당하여 전달
def greet(name="Greek", age=25) : print( "이름", name) print("나이", age) 1) greet("Alice", 30) 2) greet(age = 30, name="Alice") 3) greet() #이름 Alice #나이 30 #이름 Alice #나이 30 #이름 Greek #나이 25
Variable-length Argument
가변인수
*, **
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 def print_info(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}") print_info(name="Alice", age=30, country="USA") #name Alice #age 30 #country USA
(*args, **kwargs) 이렇게 대표명칭을 사용 할 수 도 있고
(*s, **s) 등으로 복수의 값에 대한 이름을 바꿀 수 도 있다
=> 고정아님, 단 지칭명은 필요
더보기함수가 데이터 분석에서 사용되는 예시
- 데이터 전처리 함수
- 데이터 분석을 진행할 때 데이터 전처리는 매우 중요합니다.
- 이를 위해 다양한 전처리 함수를 사용할 수 있습니다.
- 예를 들어 데이터 정규화, 결측치 처리, 특성 스케일링 등의 함수를 사용하여 데이터를 전처리할 수 있습니다.
- 아래 내용중 아직 배우지 않은 개념들이 있습니다 (mean, std, fillna) 이 부분은 pandas 시간에 자세히 배울 예정이니 지금은 함수의 개념만 이해하시면 됩니다 🙂
def stadardization(data): # 데이터 표준화 함수 scaled_data = (data - data.mean()) / data.std() return scaled_data def impute_missing_values(data): # 결측치 처리 함수 filled_data = data.fillna(data.mean()) return filled_data def nomalization(data): # 데이터 정규화 함수 scaled_data = (data - data.min()) / (data.max() - data.min()) return scaled_data
- 참고!) 정규화(Normalzation), 표준화(Standardization), 결측값(Missing Values)에 대한 부가적인 설명입니다 🙂
- 정규화(Normalization)
- 정규화는 데이터를 일정한 범위로 변환하여 비교나 분석을 용이하게 하는 과정입니다. 주로 0과 1 사이의 값으로 변환하거나 -1과 1 사이의 값으로 변환하는 등의 방법이 사용됩니다.
- 정규화는 다차원 데이터에서 각 차원의 중요성을 동등하게 만들어주는 역할을 합니다.
- 표준화(Standardization)
- 표준화(Standardization)는 데이터의 평균을 0으로, 표준편차를 1로 만들어주는 데이터 전처리 과정을 말합니다.
- 주로 데이터의 분포를 정규분포로 만들거나, 특성 간의 스케일을 일치시키기 위해 사용됩니다.
- 이는 일부 머신러닝 알고리즘에서 가정하는 가우시안 분포를 만족시키는 데 도움이 됩니다.
- 결측값(Missing Values)
- 결측값은 데이터에서 측정되지 않거나 없는 값을 의미합니다. 이는 데이터 수집 과정에서 발생할 수 있거나, 처리 과정에서 발생할 수 있습니다. 결측값은 분석이나 모델링 과정에서 문제를 일으킬 수 있으며, 이를 처리하는 방법이 중요합니다.
- 데이터 전처리 과정에서 결측값을 채우거나, 해당 행이나 열을 삭제하여 처리합니다.
- 혹은, 평균이나 중앙값으로 결측값을 대체하는 등의 방법을 사용합니다.
- 정규화(Normalization)
- 데이터 시각화 함수
- 데이터를 시각화하여 탐색적 데이터 분석을 수행할 때 다양한 시각화 함수를 사용할 수 있습니다.
- 이를 통해 데이터의 분포, 상관 관계, 이상치 등을 확인할 수 있습니다.
import matplotlib.pyplot as plt def plot_histogram(data): # 히스토그램을 그리는 함수 plt.hist(data, bins=20) plt.xlabel('Value') plt.ylabel('Frequency') plt.title('Histogram of Data') plt.show() def plot_scatter(x, y): # 산점도를 그리는 함수 plt.scatter(x, y) plt.xlabel('X') plt.ylabel('Y') plt.title('Scatter Plot') plt.show()
- 참고!) 히스토그램과 산점도란 무엇인가?
- 히스토그램은 데이터의 분포를 시각화하는 데 사용되는 그래프입니다. 연속된 데이터의 빈도를 막대 형태로 나타내어 데이터의 분포를 살펴볼 수 있습니다.
- 산점도는 두 변수 간의 관계를 시각화하는 데 사용되는 그래프입니다. 각각의 데이터 포인트를 점으로 나타내어 변수 간의 상관 관계를 확인할 수 있습니다. 두 변수 간의 관계를 살펴보거나 이상치를 탐지하는 데 사용됩니다.
- 통계 계산 함수
- 데이터 분석에서는 다양한 통계량을 계산해야 할 때가 있습니다.
- 이를 위해 통계 계산 함수를 사용할 수 있습니다.
import numpy as np def calculate_mean(data): # 평균을 계산하는 함수 return np.mean(data) def calculate_std(data): # 표준편차를 계산하는 함수 return np.std(data) def calculate_correlation(x, y): # 상관 관계를 계산하는 함수 return np.corrcoef(x, y)
- 참고!) 표준편차와 상관관계란 무엇인가?
- 표준편차(Standard Deviation)는 데이터가 평균에서 얼마나 떨어져 있는지를 나타내는 측도입니다. 분산의 제곱근으로 계산되며, 데이터 포인트와 평균 간의 거리의 제곱의 평균의 제곱근으로 정의됩니다. 표준편차는 데이터의 분포를 측정하는 데 널리 사용되며, 분산과 함께 데이터의 변동성을 나타내는 중요한 통계적 지표입니다.
- 상관관계는 두 변수 간의 선형 관계의 강도와 방향을 나타내는 지표입니다. 상관관계는 -1부터 1까지의 값을 가지며, 1에 가까울수록 양의 선형 관계가 강하고, -1에 가까울수록 음의 선형 관계가 강합니다. 0에 가까울수록 선형 관계가 약하거나 존재하지 않음을 의미합니다.
'파이썬 정리 > 본캠프' 카테고리의 다른 글
파이썬 본캠프 - 5-1 강 / 알유파문 (0) 2024.04.25 데본 파이썬 - 3강 / if, for, while (0) 2024.04.25 데분 파이썬 - 2강 / list, tuple, dict (0) 2024.04.25 데분 파이썬 - 1강 / 파이썬이란? (0) 2024.04.25 - 함수의 개념