5강 수강 내용 강의안에 예시를 보아야 이해가 빠르므로 복붙이 많지만 이렇게라도 정리해놔야될듯 ㅠ
5-1. 파일 불러오기 및 저장하기
1) 파일 확장자
CSV 파일(.csv) / Excel 파일(.xls, .xlsx) / JSON 파일 ( .json) / 텍스트파일 (.txt , .dat 등 )
5-2. 패키지(라이브러리)사용하기
패키지 : 관련된 여러 개의 모듈을 포함하는 디렉토리.(패키지 안에는 일반적으로 라이브러리나 다른 패키지가 포함될 수 있음. 데이터수집, 전처리, 시각화, 모델링, 통계 분석 등 다양한 기능을 제공)
--> 장점 : 코드의 재사용성 높임, 개발 속도 빨라짐, 코드의 가독성 향상
**패키지는 맨 처음 파이썬을 사용할 때 필요한 패키지들을 맨 위에 한번에 불러놓고 사용하면 편리함
패키지 종류
(1) 판다스 pandas
데이터 조작과 분석을 위한 라이브러리.
데이터를 효과적으로 조작하고 분석할 수 있도록 도와준다.
import pandas as pd
df = pd. read_excel(file_address)
print(df)
(2) numpy
과학적 계사능ㄹ 위한 핵심 라이브러리로, 다차원 배열과 행렬 연산을 지원함.
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr.mean())
(3) matplotlib
데이터 시각화를 위한 라이브러리로, 다양한 그래프와 플롯을 생성할 수 있다.
import matplotlib.pyplot as plt
plt,plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.show()
(4) seaborn
Matplotlib 을 기반으로 한 통계용 데이터 시각화 라이브러리. 보다 간편하고 아름다움!
(5)scikit-learn
머신 러닝 알고리즘을 사용할 수 있는 라이브러리(분류, 회귀, 군집화, 차원 축소 등 다양한 머신 러닝 기법 제공)
(6)scipy
과학기술 및 수학적인 연산을 위한 라이브러리
다양한 과학 및 공학 분야에서 활용(선형대수, 최적화, 신호 처리, 통계 분석)
(7) tensorflow
딥러닝 및 기계 학습을 위한 오픈소스 라이브러리(구글에서 개발)
그래프 기반의 계산을 통해 수치 계산을 수행(신경망을 구축하고 학습할 수 있음)
(8)pytorch
딥러닝을 위한 오픈소스 라이브러리(페북에서 개발)
동적 계산 그래프를 사용하여 신경망을 구축하고 학습할 수 있음.
8-3. 포맷팅(Formatting ) 사용하기
f-string(문자와 변수를 함께 출력할 때 위와 같이 콤마(,)와 함께 쓰는것보다 간결~)
x = 10 print(f"변수 x의 값은 {x}입니다.") |
<-> 다른 방법
x=10
print("변수 x의 값은 %d입니다." % (x))
but 별로 비효율적임.........안쓸래
8-4리스트 캄프리헨션
리스트를 간결하게 생성하는 방법 중 하나.(반복문과 조건문을 사용하여 리스트를 생성할 때 사용됨)
->코드 간결, 가독성 높아짐
->데이터 처리 및 변환에 유용함
##기본구조 [표현식 for 항목 in iterable if 조건문] |
->표현식 : 각 항목에 대한 계산이나 변환을 의미
->항목 : 반복되는 값
->iterable : 반복 가능한 객체
if 조건문은 선택적으로 사용될 수 있으며, 조건이 참일 때만 해당 항목을 결과리스트에 추가함
8-5 람다 Lambda
람다 : 익명함수, 이름 없이 정의되는 간단한 함수
주로 한줄로 표현되며, 일반적인 함수 정의와는 달리 def 키워드를 사용하지 않고 lambda 키워드를 사용하여 정의됨
(주로 함수를 매개변수로 전달하는 함수형 프로그래밍에서 유용하게 활용)
-일반 함수의 경우 함수의 이름을 지정하여 호출할 수 있지만, 람다함수는 이름이 없기 때문에 한 번만 사용되거나 임시로 필요한 경우에 사용
-일반 함수의 경우 어떤 경우에도 사용할 수 있지만, 람다함수는 주로 함수를 매개변수로 받거나 함수를 반환하는 고차 함수, 즉 함수형 프로그래밍에서 사용
장점 : 간결성, 익명성, 함수형 프로그래밍, 가독성
람다 함수의 예시
<간단한 덧셈 함수>
add = lambda x, y: x + y print(add(3,5)) ##출력 : 8 |
<제곱함수>
square = lambda x : x **2 print(square(4)). ## 출력 : 16 |
<리스트의 요소 중 짝수만 필터링>
##filter(조건 함수, 반복 가능한 데이터) numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) print(even_numbers) # 출력: [2, 4, 6, 8, 10] |
8-6
- glob란?
- glob 함수는 파일 시스템에서 파일을 찾을 때 사용되는 유용한 도구
- 이 함수는 파일 이름의 패턴 매칭을 통해 파일을 검색하고, 일치하는 파일들의 리스트를 반환
- 주로 파일 이름이나 확장자에 따라 파일을 필터링하는 데 사용
- glob 함수를 사용하면 특정 패턴에 맞는 파일을 간단하게 찾을 수 있음, 이는 파일 시스템에서 파일을 검색하고 처리하는 데 유용
import glob
# 현재 경로의 모든 파일을 찾기
file_list1 = glob.glob('*')
# 단일 파일 패턴으로 파일을 찾기
file_list2 = glob.glob('drive')
# 디렉토리 안의 모든 파일 찾기
file_list3 = glob.glob('sample_data/*')
# 특정 확장자를 가진 파일만 찾기
file_list4 = glob.glob('sample_data/*.csv')
5-7 OS
5-8 split
- 리스트의 split 메서드를 활용하면 문자열을 여러개로 쪼개는데 유용
- 이러한 메서드를 알고 있으면 문자열로 되어 있는 파일 경로로 부터 파일 제목을 추출하는 등의 상황에서 아주 유용하게 사용
**
- split가 실전에서 사용되는 예시1 : 데이터 불러올때 경로 처리할때 split 사용
- 아래의 예시에서는 **file_path**라는 문자열 변수에 데이터의 경로를 저장하고, split() 함수를 사용하여 문자열을 / 기준으로 분할합니다.
- 이때, rsplit() 함수를 사용하여 오른쪽에서부터 최대 1회만 분할하도록 설정하여 파일명과 디렉토리로 나눕니다.
- 분할된 결과를 각각 **directory**와 filename 변수에 할당하여 출력합니다.
# 데이터의 경로를 문자열로 표현 file_path = "/usr/local/data/sample.txt" # split() 함수를 사용하여 디렉토리와 파일명으로 분할 directory, filename = file_path.rsplit('/', 1) print("디렉토리:", directory) # 출력: 디렉토리: /usr/local/data print("파일명:", filename) # 출력: 파일명: sample.txt
- 이러한 방식으로 데이터의 경로를 문자열로 표현하고, 이를 split() 함수를 활용하여 필요한 정보를 추출할 수 있습니다.
5-9 클래스
파이썬 클래스(Class)는 객체 지향 프로그래밍(OOP)의 중요한 개념 중 하나
객체 지향 프로그래밍은 현실 세계의 사물을 모델링하여 프로그래밍하는 방법으로, 이를 통해 코드의 재사용성과 유지보수성을 향상시킬 수 있음
- 클래스(Class)의 기본 구조
- 파이썬에서 클래스는 다음과 같은 형태로 정의됩니다.
class ClassName: def __init__(self, parameter1, parameter2): self.attribute1 = parameter1 self.attribute2 = parameter2 def method1(self, parameter1, parameter2): # 메서드 내용 작성 pass
- 여기서 __init__ 메서드는 클래스의 생성자로, 객체가 생성될 때 호출되며 초기화 작업을 수행합니다.
- 클래스 내부의 메서드들은 클래스의 동작을 정의하는 함수입니다.
- 메서드의 첫 번째 매개변수로 self를 반드시 사용해야 합니다. 이는 해당 메서드가 속한 객체를 가리킵니다.
- 다형성(Polymorphism)
- 다형성은 같은 이름의 메서드가 서로 다른 클래스에서 다른 기능을 수행하도록 하는 개념입니다.
class Animal: def sound(self): print("Some generic sound") class Dog(Animal): def sound(self): print("Woof") class Cat(Animal): def sound(self): print("Meow") # 다형성 활용 animals = [Dog(), Cat()] for animal in animals: animal.sound()
- 위 코드에서 Animal 클래스의 sound 메서드를 각각의 하위 클래스인 **Dog**와 **Cat**에서 재정의하여 다른 동작을 수행하게 됩니다
'Python' 카테고리의 다른 글
데이터 리터러시 (0) | 2024.12.17 |
---|---|
[1217 TIL] python 코드카타 자릿수 더하기(str, int, for in, sum) (0) | 2024.12.17 |
[1213 TIL] Python 라이브세션3주차, 개인과제(enumerate 함수) (1) | 2024.12.13 |
[1212 TIL] Python 종합반 3강, 라이브 세션 3주차 복습 (0) | 2024.12.12 |
[1209 TIL] SQL코드카타(date_format, sum), Python 1주차 (2) | 2024.12.09 |