ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데분 파이썬 - 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)
          • 결측값은 데이터에서 측정되지 않거나 없는 값을 의미합니다. 이는 데이터 수집 과정에서 발생할 수 있거나, 처리 과정에서 발생할 수 있습니다. 결측값은 분석이나 모델링 과정에서 문제를 일으킬 수 있으며, 이를 처리하는 방법이 중요합니다.
          • 데이터 전처리 과정에서 결측값을 채우거나, 해당 행이나 열을 삭제하여 처리합니다.
          • 혹은, 평균이나 중앙값으로 결측값을 대체하는 등의 방법을 사용합니다.
    • 데이터 시각화 함수
      • 데이터를 시각화하여 탐색적 데이터 분석을 수행할 때 다양한 시각화 함수를 사용할 수 있습니다.
      • 이를 통해 데이터의 분포, 상관 관계, 이상치 등을 확인할 수 있습니다.
      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에 가까울수록 선형 관계가 약하거나 존재하지 않음을 의미합니다.

     

Designed by Tistory.