✏️ 24.12.11 TIL

DadaΒ·2024λ…„ 12μ›” 11일

πŸ“… TO DO


  • 데이터 뢄석 파이썬 μ’…ν•©λ°˜ κ°•μ˜ 5μ£Όμ°¨ μˆ˜κ°•
  • 파이썬 라이브 μ„Έμ…˜ μˆ˜κ°•
  • 데이터 λ¦¬ν„°λŸ¬μ‹œ 1-2, 1-3 μˆ˜κ°•

πŸ“ MEMO


β–Ά 데이터 뢄석 파이썬 μ’…ν•©λ°˜ - 5. μœ μš©ν•œ 파이썬 문법
β–Ά 데이터 λ¦¬ν„°λŸ¬μ‹œ - 2. 문제 μ •μ˜
β–Ά 데이터 λ¦¬ν„°λŸ¬μ‹œ - 3. λ°μ΄ν„°μ˜ μœ ν˜•

β–Ά 데이터 λ¦¬ν„°λŸ¬μ‹œ

1. 문제 μ •μ˜ 방법둠

  • MECE

    • κ²ΉμΉ˜μ§€ μ•ŠμœΌλ©΄μ„œ 전체λ₯Ό 포괄적인 ꡬ성 μš”μ†Œλ‘œ 문제λ₯Ό λ‚˜λˆ„λŠ” 것
    • MECEλ₯Ό 톡해 λ³΅μž‘ν•œ 문제λ₯Ό μ²΄κ³„μ μœΌλ‘œ λΆ„ν•΄ν•˜κ³ , κ΅¬μ‘°ν™”λœ λ°©μ‹μœΌλ‘œ 뢄석할 수 있음
  • 둜직 트리

    • MECE 원칙을 기반으둜 λ³΅μž‘ν•œ 문제λ₯Ό 더 μž‘κ³  κ΄€λ¦¬ν•˜κΈ° μ‰¬μš΄ ν•˜μœ„ 문제둜 λΆ„ν•΄ν•˜λŠ” 데 μ‚¬μš©
    • μƒμœ„ λ¬Έμ œλ‘œλΆ€ν„° μ‹œμž‘ν•˜μ—¬ ν•˜μœ„ 문제둜 계측적 μ ‘κ·Ό

2. λ°μ΄ν„°μ˜ μœ ν˜•

  • 정성적 데이터
    • λΉ„μˆ˜μΉ˜μ μΈ 정보 β‡’ μ‚¬λžŒμ˜ κ²½ν—˜, 관점, νƒœλ„μ™€ 같은 주관적 μš”μ†Œ 포함
    • λŒ€λΆ€λΆ„ ν…μŠ€νŠΈ, λΉ„λ””μ˜€, μ˜€λ””μ˜€ ν˜•νƒœλ‘œ 쑴재
    • μƒˆλ‘œμš΄ ν˜„μƒμ΄λ‚˜ κ°œλ…μ— λŒ€ν•œ 이해λ₯Ό μ‹¬ν™”ν•˜λŠ”λ° μ‚¬μš©
  • μ •λŸ‰μ  데이터
    • 수치적으둜 ν‘œν˜„λ˜λŠ” 정보 β‡’ 양적인 μΈ‘μ •κ³Ό 뢄석을 톡해 얻을 수 있음
    • 데이터가 숫자 ν˜•νƒœλ‘œ μ‘΄μž¬ν•˜κΈ° λ•Œλ¬Έμ— ν†΅κ³„μ μœΌλ‘œ λΆ„μ„ν•˜κΈ° 쉬움
    • μ§€ν‘œλ‘œ λ§Œλ“€κΈ° 용이

β–Ά 데이터 뢄석 파이썬 μ’…ν•©λ°˜

1. 클래슀의 기본 ꡬ쑰

  • __init__ : 클래슀의 μƒμ„±μž, 객체가 생성될 λ•Œ 호좜되며 μ΄ˆκΈ°ν™” μž‘μ—…μ„ μˆ˜ν–‰
  • 클래슀 λ‚΄λΆ€μ˜ λ©”μ„œλ“œλ“€μ€ 클래슀의 λ™μž‘μ„ μ •μ˜ν•˜λŠ” ν•¨μˆ˜
  • λ©”μ„œλ“œμ˜ 첫 번째 λ§€κ°œλ³€μˆ˜λ‘œ selfλ₯Ό λ°˜λ“œμ‹œ μ‚¬μš©ν•΄μ•Ό 함
class ClassName:
    def __init__(self, parameter1, parameter2):
        self.attribute1 = parameter1
        self.attribute2 = parameter2

    def method1(self, parameter1, parameter2):
    # λ©”μ„œλ“œ λ‚΄μš© μž‘μ„±
        pass

2. ν΄λž˜μŠ€μ™€ 객체(Object)의 관계

  • ν΄λž˜μŠ€λŠ” 객체λ₯Ό λ§Œλ“€κΈ° μœ„ν•œ ν‹€ λ˜λŠ” 섀계도
    β†’ κ°μ²΄λŠ” μ΄λŸ¬ν•œ 클래슀λ₯Ό μ΄μš©ν•˜μ—¬ 생성
# Person 클래슀둜 객체 λ§Œλ“€κΈ°
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# 객체 생성
person1 = Person("Alice", 30)
person2 = Person("Bob", 25)

3. 클래슀의 속성과 λ©”μ„œλ“œ

  • λ©”μ„œλ“œ(Method)
    • 클래슀 내뢀에 μ •μ˜λœ ν•¨μˆ˜
class Car:
    def __init__(self, brand):
        self.brand = brand
    
    def start_engine(self):
        print(f"{self.brand}의 엔진을 κ°€λ™ν•©λ‹ˆλ‹€.")

# Car 클래슀의 μΈμŠ€ν„΄μŠ€ 생성
my_car = Car("Toyota")
# start_engine() λ©”μ„œλ“œ 호좜
my_car.start_engine()  # 좜λ ₯: Toyota의 엔진을 κ°€λ™ν•©λ‹ˆλ‹€.
  • 속성(Attribute)
    • ν΄λž˜μŠ€λ‚˜ 클래슀의 μΈμŠ€ν„΄μŠ€μ— μ†ν•œ λ³€μˆ˜
class Dog:
    def __init__(self, name):
        self.name = name  # μΈμŠ€ν„΄μŠ€ 속성

# Dog 클래슀의 μΈμŠ€ν„΄μŠ€ 생성
my_dog = Dog("Buddy")
print(my_dog.name)      # 좜λ ₯: Buddy

πŸ“ μ˜€λ‹΅λ…ΈνŠΈ


β–Ά 문제
ν•¨μˆ˜ solution은 μ •μˆ˜ x와 μžμ—°μˆ˜ n을 μž…λ ₯ λ°›μ•„, xλΆ€ν„° μ‹œμž‘ν•΄ xμ”© μ¦κ°€ν•˜λŠ” 숫자λ₯Ό n개 μ§€λ‹ˆλŠ” 리슀트λ₯Ό 리턴해야 ν•©λ‹ˆλ‹€. λ‹€μŒ μ œν•œ 쑰건을 보고, 쑰건을 λ§Œμ‘±ν•˜λŠ” ν•¨μˆ˜, solution을 μ™„μ„±ν•΄μ£Όμ„Έμš”.

# μ˜€λ‹΅ - list의 길이가 n+1이 됨
def solution(x, n):
    answer = []
    num = 0
    if -10000000 <= x <= 10000000 and n <= 1000:
        while len(answer) <= n:
            num += x
            answer.append(num)
    return answer
  • λ¬Έμ œκ°€ λ˜λŠ” ꡬ문 : while len(answer) <= n
    • 리슀트의 길이가 n보닀 μž‘κ±°λ‚˜ 같은 λ™μ•ˆ while문을 돌림
    • answer 리슀트의 κ°œμˆ˜κ°€ n이 λ˜μ—ˆμ„ λ•Œλ„ 참이기 λ•Œλ¬Έμ— while문이 ν•œ 번 더 돌게 됨
  • ν•΄κ²° λ°©μ•ˆ: 쑰건을 len(answer) < n으둜 μˆ˜μ •
# μ •λ‹΅ - 쑰건 μˆ˜μ •
def solution(x, n):
    answer = []
    num = 0
    if -10000000 <= x <= 10000000 and n <= 1000:
        while len(answer) < n:
            num += x
            answer.append(num)
    return answer

0개의 λŒ“κΈ€