TIL(Today I Learned) 24.07.09_ 알면 유용한 파이썬 문법들1
아침에 알고리즘 코드카타를 풀다가
몰랐던 python으로 제곱근을 구하는 방법을 TIL에 추가로 작성했다.
2024.07.09 - [데이터분석 study/Python] - TIL(Today I Learned) 24.07.09_ 제곱근 구하기
TIL(Today I Learned) 24.07.09_ 제곱근 구하기
아침에 알고리즘 코드카타 문제를 풀다가 내가 몰랐던 내용이어서 작성하게 되었다. ▶제곱 구하기 - 일단 먼저 특정 숫자의 제곱을 구할 때는 특정 숫자 뒤에 '**' 를 사용해서 구한다. ▶
justdata.tistory.com
▶ 확장자에 따른 파일 불러오는 함수
● csv파일
- 데이터 프레임으로 불러오기 : pandas 라이브러리의 read_csv() 함수를 사용
예시 코드)
import pandas as pd
df = pd.read_csv('file.csv')
** excel 파일은 read_excel() 함수, json 파일은 read_json() 함수를 사용
●텍스트 파일 (.txt, .dat 등)
- 데이터프레임으로 불러오기 : pandas 의 read_csv() 함수를 사용할 수 있다.
예시코드)
import pandas as pd
df = pd.read_csv('file.txt', delimiter='\t')
# 만약 탭으로 구분되어 있다면 delimiter='\t'를 사용합니다.
** 이 방법 말고도 다양한 방법이 있으니 필요할 때마다 구글링 하기
▶ 파일 저장하기
● csv 파일
예시코드)
import pandas as pd
data = {
'Name': ['John', 'Emily', 'Michael'],
'Age': [30, 25, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
excel_file_path = '/content/sample_data/data.csv'
df.to_csv(excel_file_path, index = False)
# index = False 는 csv 파일에 데이터 표가 생성될 때 행에 번호가 표시 되는 것을 없애준다.
print("csv 파일이 생성되었습니다.")
● excel 파일(.xls, .xlsx)
예시 코드)
import pandas as pd
data = {
'Name': ['John', 'Emily', 'Michael'],
'Age': [30, 25, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
excel_file_path = '/content/sample_data/data.xlsx'
df.to_excel(excel_file_path, index = False)
print("Excel 파일이 생성되었습니다.")
● json 파일(.json)
예시 코드)
import json
data = {
'Name': ['John', 'Emily', 'Michael'],
'Age': [30, 25, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
json_file_path = '/content/sample_data/data.json'
# json 파일을 쓰기모드('w')로 열어서 data를 거기에 덮어씌우게 됩니다.
with open(json_file_path, 'w') as jsonfile:
json.dump(data, jsonfile, indent=4)
print("JSON 파일이 생성되었습니다.")
● 텍스트 파일(.txt, .dat 등)
예시 코드)
data = {
'Name': ['John', 'Emily', 'Michael'],
'Age': [30, 25, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
text_file_path = '/content/sample_data/data.txt'
with open(text_file_path, 'w') as textfile:
for key, item in data.items():
textfile.write(str(key) + " : " + str(item) + '\n')
print("텍스트 파일이 생성되었습니다.")
▶ 패키지(라이브러리) 사용하기
● 패키지는 관련된 여러 개의 모듈을 포함하는 디렉토리
● 예를 들어 numpy와 matplotlib는 여러 모듈을 포함하는 패키지
● 데이터 분석을 위한 파이썬 패키지들은 다양한 작업을 수행하는데 필수
● 이들 패키지들은 데이터 수집, 전처리, 시각화, 모델링, 통계 분석 등 다양한 기능을 제공
● 패키지는 맨 처음 파이썬을 사용할 대 필요한 패키지들을 맨위에 한번에 불러놓고
사용하면 편리
# 아래와 같이 보통은 필요한 패키지를 한번에 다 불러온 다음 코딩을 진행합니다
import pandas as pd
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
import seaborn
- pandas : 데이터 조작과 분석을 위한 라이브러리로 데이터를 효과적으로 조작, 분석
- numpy : 과학적 계산을 위한 핵심 라이브러리로, 다차원 배열과 행렬연산을 지원
- matplotlib : 데이터 시각화를 위한 라이브러리로, 다양한 그래프와 플롯을 생성
- seaborn : matplotlib을 기반으로 한 통계용 데이터 시각화 라이브러리로, 보다 간편하고
아름다운 시각화를 제공
- scikit-learn : 머신 러닝 알고리즘을 사용할 수 있는 라이브러리로, 분류, 회귀, 군집화, 차원 축소
등 다양한 머신 러닝 기법을 제공
from sklearn.datasets import load_iris
from sklearn.linear_model import LinearRegression
# Iris 데이터셋 불러오기
iris = load_iris()
# Iris 데이터셋에서 특정 범위의 데이터 슬라이싱하기
X_train = iris.data[:,:-1] # 데이터 값들 추출
print("학습 데이터:", X_train)
y_train = iris.data[:,-1:] # 정답값 추출
print("학습 데이터:", y_train)
model = LinearRegression()
model.fit(X_train, y_train)
- tensorflow : 딥러닝 및 기계학습을 위한 오픈소스 라이브러리로, 구글에서 개발, 그래프 기반의 계산을
통해 수치계산을 수행하며, 신경망을 구축하고 학습
import tensorflow as tf
input_size = 3
model = tf.keras.Sequential([
tf.keras.layers.Dense(10, activation='relu', input_shape=(input_size,)),
tf.keras.layers.Dense(1)
])
model.compile(optimizer='adam', loss='mse')
**이 외에도 다양한 데이터 분석을 위한 패키지들도 많아서 구글링하며 공부하기
▶포맷팅 사용하기
● 대표적인 f-string (python 3.6 이상부터)
x = 10
print(f"변수 x의 값은 {x}입니다.")
● 다른 포맷팅 방법
x = 10
print("변수 x의 값은 {}입니다.".format(x))
** f-string 과 다른 점은 문자열 맨 앞에 f를 적지 않고, 대신 문자열 맨뒤에 온점(.)을 찍고 format() 함수
를 사용하며 그 함수에 변수를 집어 넣어줘야 한다.
▶리스트 캄프리헨션
● 파이썬에서 리스트를 간결하게 생성하는 방법,
● 보통 반복문과 조건문을 사용하여 리스트를 생성할 때 사용
기본구조)
# 기본적인 구조
[표현식 for 항목 in iterable if 조건문]
** 표현식은 각 항목에 대한 계산,변환을 의미, 항목은 반복되는 값, iterable 은 반복 가능한 객체
예시코드)
# 예시: 1부터 10까지의 숫자를 제곱한 리스트 생성
squares = [x**2 for x in range(1, 11)]
print(squares) # 출력: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# 예시: 리스트에서 짝수만 선택하여 제곱한 리스트 생성
even_squares = [x**2 for x in range(1, 11) if x % 2 == 0]
print(even_squares) # 출력: [4, 16, 36, 64, 100]
# 예시: 문자열 리스트에서 각 문자열의 길이를 저장한 리스트 생성
words = ["apple", "banana", "grape", "orange"]
word_lengths = [len(word) for word in words]
print(word_lengths) # 출력: [5, 6, 5, 6]
# 예시: 리스트 컴프리헨션을 중첩하여 2차원 리스트 생성
matrix = [[i for i in range(1, 4)] for j in range(3)]
print(matrix) # 출력: [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
** if 조건문은 선택적으로 사용될 수 있으며, 조건이 참일 대만 해당 항목을 결과 리스트에 추가
▶lambda 사용하기
● 람다 함수는 익명 함수로 이름 없이 정의되는 간단 함수
● 주로 한 줄로 표현, lambda 키워드를 사용하여 정의
● 이름이 없기 때문에 한 번만 사용되거나 임시로 필요한 경우에 사용
● 람다 함수는 주로 함수를 매개변수로 받거나 함수를 반환하는 고차원 함수,
즉 함수형 프로그래밍에서 사용됨
● 그러나 람다 한수는 모든 상황에 적합하지 않다.
예시 코드)
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]
** map이라는 내장함수는 여러개의 값을 받아서 각각의 값에 함수를 적용한 결과를 반환
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers) # 출력: [1, 4, 9, 16, 25]