| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- #내일배움캠프 #사전캠프 #til #sql
- 통계101x데이터분석
- vscode
- A/B테스트
- Ai
- 머신러닝
- 이상치 제거
- 이상탐지
- 내일배움캠프#til#데이터 리터러시
- 딥러닝
- 내일배움캠프#til#sql
- 내일배움캠프#til#sqld
- 통계학공부
- 차원축소
- 가설검정
- 통계
- 다중검정
- 내일배움캠프#til#파이썬#python#통계학
- 카이제곱검정
- 책
- 통계학
- 데이터분석
- t검정
- 데이터
- 라이브 세션
- 제2종오류
- 내일배움캠프#til#sqld#eda#데이터리터러시
- 내일배움캠프#til#파이썬#python
- 내일배움캠프#til#파이썬#python#전처리
- 제1종오류
- Today
- Total
Ming's Life
[내일배움캠프] 주말 공부 -2 본문
1. 오늘 학습 키워드
- 데이터 분석 파이썬
2. 오늘 학습 한 내용을 나만의 언어로 정리하기
리스트, 튜플, 딕셔너리
- 데이터를 담고, 정리하고, 꺼낼때 필요해요!
설명
- 딥러닝 모델을 반복 학습하며 결과를 리스트에 추가
- 데이터 불러올때, 경로 처리할때 split 사용
- 데이터를 임의의 범위만큼 선택할때 슬라이싱, 인덱싱 사용 데이터를 변경 불가능하게 사용하고 싶을 때
- 데이터를 담는 하나의 방법
목적
- 주로 맨 처음 데이터를 불러오고 가공할 때 사용
- 결과를 저장할 때 많이 사용
결과물
기대효과
- 데이터를 자유자재로 다룰 수 있고 정리할 수 있다
리스트(List) 기본 사용법
- 리스트는 파이썬에서 가장 자주 사용되는 데이터 구조 중 하나입니다. 여러 항목들을 담을 수 있는 가변(mutable)한 시퀀스(sequence)입니다.
- 대괄호 [ ]를 사용하여 리스트를 만들 수 있습니다.
리스트의 기본 구조
- 리스트는 여러 값을 순서대로 담을 수 있습니다.
- 각 값은 쉼표로 구분되며, 대괄호 안에 들어갑니다.
# 1. 리스트 생성
my_list = [1, 2, 3, 4, 5]
# 2. 리스트의 기본 구조
print(my_list) # 출력: [1, 2, 3, 4, 5]
리스트 기본 사용법
1. 리스트의 인덱싱(Indexing)
- 리스트에서 특정 값에 접근하거나 일부분을 추출하는 방법에 대해 배웁니다.
- 인덱싱: 리스트에서 특정 위치의 값에 접근하는 방법
# 리스트 생성
numbers = [1, 2, 3, 4, 5]
# 첫 번째 요소에 접근하기
first_number = numbers[0]
print("First number:", first_number)
# 두 번째 요소에 접근하기
second_number = numbers[1]
print("Second number:", second_number)
# 마지막 요소에 접근하기
last_number = numbers[-1]
print("Last number:", last_number)
# 음수 인덱스를 사용하여 역순으로 요소에 접근하기
second_last_number = numbers[-2]
print("Second last number:", second_last_number)
2. 리스트의 다양한 메서드(Methods)
- append(): 리스트에 항목을 추가합니다.
- extend(): 리스트에 다른 리스트의 모든 항목을 추가합니다.
- insert(): 리스트의 특정 위치에 항목을 삽입합니다.
- remove(): 리스트에서 특정 값을 삭제합니다.
- pop(): 리스트에서 특정 위치의 값을 제거하고 반환합니다.
- index(): 리스트에서 특정 값의 인덱스를 찾습니다.
- count(): 리스트에서 특정 값의 개수를 세어줍니다.
- sort(): 리스트의 항목들을 정렬합니다.
- reverse(): 리스트의 항목들을 역순으로 뒤집습니다.
* ‘반환’이라는 표현은 함수의 결과 값을 밖으로 끄집어 낸다라는 것을 의미
# 리스트 생성
my_list = [1, 2, 3, 4, 5]
#리스트의 다양한 메서드(Methods)
my_list.append(6) # 리스트에 새로운 항목 추가
print(my_list) # 출력: [1, 2, 3, 4, 5, 6]
my_list.extend([7, 8, 9]) # 다른 리스트의 모든 항목을 추가
print(my_list) # 출력: [1, 2, 3, 4, 5, 6, 7, 8, 9]
my_list.insert(2, 10) # 두 번째 위치에 값 삽입
print(my_list) # 출력: [1, 2, 10, 3, 4, 5, 6, 7, 8, 9]
my_list.remove(3) # 값 3 삭제
print(my_list) # 출력: [1, 2, 10, 4, 5, 6, 7, 8, 9]
popped_value = my_list.pop(5) # 다섯 번째 위치의 값 제거하고 반환
print(popped_value) # 출력: 6
print(my_list) # 출력: [1, 2, 10, 4, 5, 7, 8, 9]
print(my_list.index(4)) # 출력: 3 (값 4의 인덱스)
print(my_list.count(7)) # 출력: 1 (값 7의 개수)
my_list.sort() # 리스트 정렬
print(my_list) # 출력: [1, 2, 4, 5, 7, 8, 9, 10]
my_list.reverse() # 리스트 역순으로 뒤집기
print(my_list) # 출력: [10, 9, 8, 7, 5, 4, 2, 1]
3. 리스트 값 삭제
# 리스트의 항목 삭제
del my_list[0]
print("첫 번째 항목 삭제 후 리스트:", my_list)
# 리스트 내 값들의 모든 항목 제거
my_list.clear()
print("모든 항목 제거 후 리스트:", my_list)
4. 리스트 값 변경
my_list = ['apple', 'banana', 'cherry', 'date', 'elderberry']
# 리스트 값 변경하기
my_list[3] = 'dragonfruit'
print(my_list) # 출력: ['apple', 'banana', 'cherry', 'dragonfruit', 'elderberry']
* 인덱싱을 활용하여 특정 위치의 리스트 값을 다른 값으로 변경할 수 있습니다
5. 중첩된 리스트에서 인덱싱하기
# 중첩된 리스트에서 인덱싱하기
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(nested_list[1][0]) # 출력: 4 (두 번째 리스트의 첫 번째 항목)
* 두 개 이상의 중첩된 리스트에서도 인덱싱이 가능합니다
리스트가 실전에서 사용되는 예시 : 간단한 데이터 계산
# 리스트를 사용한 간단한 데이터 계산 예시
grades = [85, 92, 88, 78, 90]
average_grade = sum(grades) / len(grades)
print("평균 성적:", average_grade)
* ex ) 학점 데이터 값들을 리스트 형태로 만들어 간편하게 평균을 계산
리스트 고급 사용법
1. 슬라이싱
- 리스트 슬라이싱은 리스트의 일부분을 추출하는 것을 말합니다.
- 이를 통해 리스트에서 특정 범위의 항목을 선택하거나 리스트를 자르는 등의 작업을 할 수 있습니다.
- 아래의 슬라이싱의 구조를 보며 슬라이싱을 사용하는 방법에 대해 알아보도록 해요!
# 리스트 슬라이싱의 구분
# 아래는 실행하는 코드가 아닙니다
new_list = old_list[start:end:step]
- 파이썬은 맨 처음을 가리키는 인덱스가 0이에요! (1이 아님에 유의하세요)
- 슬라이싱을 할 때 끝에 입력할 인덱스는 내가 선택할 인덱스보다 +1을 해주어야 해요!
(1번째부터 12번째까지의 요소를 가져올 것이면 [0:13] 이렇게 슬라이싱을 해야 하는거죠)
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 1. 일부분만 추출하기
print(my_list[2:5]) # 출력: [3, 4, 5]
# 2. 시작 인덱스 생략하기 (처음부터 추출)
print(my_list[:5]) # 출력: [1, 2, 3, 4, 5]
# 3. 끝 인덱스 생략하기 (끝까지 추출)
print(my_list[5:]) # 출력: [6, 7, 8, 9, 10]
# 4. 음수 인덱스 사용하기 (뒤에서부터 추출)
print(my_list[-3:]) # 출력: [8, 9, 10]
# 5. 간격 설정하기 (특정 간격으로 추출)
print(my_list[1:9:2]) # 출력: [2, 4, 6, 8]
# 6. 리스트 전체를 복사하기
copy_of_list = my_list[:]
print(copy_of_list) # 출력: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 7. 리스트를 거꾸로 뒤집기
reversed_list = my_list[::-1]
print(reversed_list) # 출력: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
# 리스트에서 홀수 번째 인덱스의 값들 출력하기
my_list = [10, 20, 30, 40, 50, 60, 70, 80, 90]
odd_index_values = my_list[1::2]
print("홀수 번째 인덱스의 값들:", odd_index_values) # 출력: [20, 40, 60, 80]
* 슬라이싱을 활용하여 홀수나 짝수 값만 추출하는 것도 가능합니다.
2. 정렬
- sort() 메서드는 리스트의 항목들을 정렬하는 데 사용됩니다.
- 이 메서드를 호출하면 리스트 내의 항목들이 오름차순으로 정렬됩니다.
- 기본적으로 숫자와 문자열에 대해서는 오름차순으로 정렬되며, 리스트의 항목들이 동일한 형태일 경우에만 정렬됩니다.
- sort() 메서드는 원래의 리스트를 변경하며, 새로운 정렬된 리스트를 반환하지 않습니다.
my_list.sort(reverse=False)
* reverse: 정렬 순서를 지정합니다. 기본값은 False로 오름차순을 의미하며, True로 설정하면 내림차순으로 정렬됩니다.
# 숫자로 이루어진 리스트 정렬 예시
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
numbers.sort()
print("정렬된 리스트:", numbers) # 출력: [1, 1, 2, 3, 4, 5, 5, 6, 9]
# 문자열로 이루어진 리스트 정렬 예시
words = ['apple', 'banana', 'orange', 'grape', 'cherry']
words.sort()
print("정렬된 리스트:", words) # 출력: ['apple', 'banana', 'cherry', 'grape', 'orange']
# 내림차순으로 리스트 정렬 예시
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
numbers.sort(reverse=True)
print("내림차순으로 정렬된 리스트:", numbers) # 출력: [9, 6, 5, 5, 4, 3, 2, 1, 1]
# 리스트의 문자열 길이로 정렬 예시
words = ['apple', 'banana', 'orange', 'grape', 'cherry']
words.sort(key=len)
print("문자열 길이로 정렬된 리스트:", words) # 출력: ['apple', 'grape', 'banana', 'cherry', 'orange']
* 예시
튜플
- 파이썬 튜플은 변경할 수 없는(immutable) 시퀀스(sequence) 자료형으로, 여러 개의 요소를 저장하는 컨테이너입니다.
- 튜플은 리스트와 유사하지만, 한 번 생성된 이후에는 요소를 추가, 삭제, 수정할 수 없습니다.
- 이러한 특성으로 인해 파이썬에서 데이터를 보호하고 싶을 때 주로 사용됩니다.
my_tuple = (1, 2, 3, 'hello', 'world')
* 튜플은 소괄호()를 사용하여 생성하며, 각 요소는 쉼표 ,로 구분됩니다. 간단한 튜플을 생성하는 예시입니다.
튜플 인덱싱, 슬라이싱
- 튜플은 인덱스와 슬라이싱을 사용하여 요소에 접근할 수 있습니다.
- 인덱스는 0부터 시작하며, 음수를 사용하여 뒤에서부터 접근할 수도 있습니다.
my_tuple = (1, 2, 3, 'hello', 'world')
print(my_tuple[0]) # 첫 번째 요소에 접근
print(my_tuple[-1]) # 마지막 요소에 접근
print(my_tuple[2:4]) # 인덱스 2부터 3까지의 요소를 슬라이싱
* 튜플은 변경할 수 없기 때문에 요소를 추가, 삭제, 수정하는 것은 불가능합니다. 하지만 튜플을 합치거나 반복하여 새로운 튜플을 생성할 수는 있습니다.
이러한 특성은 데이터 불변성을 보장하고, 데이터 분석에서 데이터의 무결성을 유지하는 데 도움이 됩니다.
튜플에서 자주 사용하는 메서드
- count(): 지정된 요소의 개수를 반환합니다.
- index(): 지정된 요소의 인덱스를 반환합니다.
# 튜플 생성
my_tuple = (1, 2, 3, 4, 1, 2, 3)
# count() 메서드 예제
count_of_1 = my_tuple.count(1)
print("Count of 1:", count_of_1) # 출력: 2
# index() 메서드 예제
index_of_3 = my_tuple.index(3)
print("Index of 3:", index_of_3) # 출력: 2
튜플과 리스트의 차이점
- 튜플은 변경할 수 없기 때문에 요소를 추가, 삭제, 수정하는 것은 불가능합니다.
- 하지만 튜플을 합치거나 반복하여 새로운 튜플을 생성할 수는 있습니다.
- 이러한 특성은 데이터 불변성(immutable)을 보장합니다.
tuple1 = (1, 2, 3)
tuple2 = ('a', 'b', 'c')
new_tuple = tuple1 + tuple2 # 두 개의 튜플을 합치기
print(new_tuple)
repeated_tuple = tuple1 * 3 # 튜플을 반복하기
print(repeated_tuple)
* 불변성이란 변경할 수 없는 상태를 얘기하는 것이며 이 단어와 반대되는 말로는 가변성(mutable)이 있습니다.
- 따라서 튜플이 불변성이라는 얘기는 튜플 안에 있는 값을 임의로 수정할 수 없다는 얘기입니다.
튜플→리스트로 변경, 리스트→튜플로 변경
- 튜플을 리스트로 변경하려면 list() 함수를 사용하고, 리스트를 튜플로 변경하려면 tuple() 함수를 사용합니다.
- 각 함수는 인자로 변환하려는 자료형을 전달받아 새로운 자료형으로 변환합니다.
# 튜플을 리스트로 변경하기
my_tuple = (1, 2, 3, 4, 5)
my_list = list(my_tuple)
print(my_list) # 출력: [1, 2, 3, 4, 5]
# 리스트를 튜플로 변경하기
my_list = [1, 2, 3, 4, 5]
my_tuple = tuple(my_list)
print(my_tuple) # 출력: (1, 2, 3, 4, 5)
튜플이 실전에서 사용되는 예시 : 변하면 안되는 개인정보 데이터를 튜플로 변수에 담기
- 데이터의 불변성을 유지해야 하는 경우에 튜플을 사용하여 데이터를 표현할 수 있습니다.
- 데이터의 불변성을 보장하고 데이터의 일관성을 유지할 수 있게 합니다.
# 데이터 표현 예시
record = ('John', 30, 'john@example.com')
딕셔너리
- 파이썬 딕셔너리는 키-값 쌍의 데이터를 저장하는 자료구조로, 중괄호 **{}**로 둘러싸여 있으며 각 요소는 쉼표로 구분됩니다.
- 각 키는 유일해야 하지만 값은 중복될 수 있습니다. 파이썬 딕셔너리는 해시 테이블로 구현되어 있어 키를 사용하여 매우 빠르게 값을 찾을 수 있습니다.
다음은 파이썬 딕셔너리의 기본 구조입니다
my_dict = {
'key1': 'value1',
'key2': 'value2',
'key3': 'value3'
}
* 여기서 'key1', 'key2', 'key3'은 각각 키이고, 'value1', 'value2', 'value3'은 각 키에 대응하는 값입니다.
딕셔너리 기본기
- 파이썬 딕셔너리는 다양한 용도로 사용될 수 있습니다.
# 빈 딕셔너리 생성
empty_dict = {}
# 학생 성적표
grades = {
'Alice': 90,
'Bob': 85,
'Charlie': 88
}
# 접근하기
print(grades['Alice']) # 출력: 90
# 값 수정하기
grades['Bob'] = 95
# 요소 추가하기
grades['David'] = 78
# 요소 삭제하기
del grades['Charlie']
* 예를 들어, 학생 이름을 키로 하고 점수를 값으로 하는 성적표를 만들거나, 도시 이름을 키로 하고 인구를 값으로 하는 도시 인구 정보를 저장할 수 있습니다.
딕셔너리에서 자주 사용되는 메서드
keys(): 모든 키를 dict_keys 객체로 반환합니다.
values(): 모든 값을 dict_values 객체로 반환합니다.
items(): 모든 키-값 쌍을 (키, 값) 튜플로 구성된 dict_items 객체로 반환합니다.
get(): 지정된 키에 대한 값을 반환합니다. 키가 존재하지 않으면 기본값을 반환합니다.
pop(): 지정된 키와 해당 값을 딕셔너리에서 제거하고 값을 반환합니다.
popitem(): 딕셔너리에서 마지막 키-값 쌍을 제거하고 반환합니다.
# 딕셔너리 생성
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
# keys() 메서드 예제
keys = my_dict.keys()
print("Keys:", keys) # 출력: dict_keys(['name', 'age', 'city'])
# values() 메서드 예제
values = my_dict.values()
print("Values:", values) # 출력: dict_values(['John', 30, 'New York'])
# items() 메서드 예제
items = my_dict.items()
print("Items:", items) # 출력: dict_items([('name', 'John'), ('age', 30), ('city', 'New York')])
# get() 메서드 예제
age = my_dict.get('age')
print("Age:", age) # 출력: 30
# pop() 메서드 예제
city = my_dict.pop('city')
print("City:", city) # 출력: New York
print("Dictionary after pop:", my_dict) # 출력: {'name': 'John', 'age': 30}
# popitem() 메서드 예제
last_item = my_dict.popitem()
print("Last item popped:", last_item) # 출력: ('age', 30)
print("Dictionary after popitem:", my_dict) # 출력: {'name': 'John'}
딕셔너리가 실전에서 사용되는 예시 : 데이터를 사전처럼 저장하고 싶을 때
- 아래와 같은 예시들을 통해 파이썬 딕셔너리가 다양한 상황에서 유용하게 사용될 수 있음을 알 수 있습니다.
- 딕셔너리를 활용하여 다양한 데이터를 효율적으로 관리하고 분석할 수 있습니다.
user_info = {
'username': 'john_doe',
'email': 'john@example.com',
'age': 30,
'is_active': True
}
* 사용자 정보 관리
products = {
'1001': {'name': 'Keyboard', 'price': 20.99, 'stock': 50},
'1002': {'name': 'Mouse', 'price': 15.50, 'stock': 70},
'1003': {'name': 'Monitor', 'price': 199.99, 'stock': 30}
}
* 제품 카탈로그
events = {
'2024-04-01': ['Meeting with client', 'Team lunch'],
'2024-04-02': ['Presentation preparation', 'Project review'],
'2024-04-03': ['Training session', 'Code debugging']
}
* 날짜별 이벤트 관리
movies = {
'Interstellar': {'genre': 'Sci-Fi', 'director': 'Christopher Nolan', 'year': 2014},
'Inception': {'genre': 'Sci-Fi', 'director': 'Christopher Nolan', 'year': 2010},
'The Shawshank Redemption': {'genre': 'Drama', 'director': 'Frank Darabont', 'year': 1994}
}
* 영화 정보 저장
3. 학습하며 겪었던 문제점 & 에러
-
4. 내일 학습 할 것은 무엇인지
SQL 코드카타 ,파이썬 강의 듣기
'내일배움캠프' 카테고리의 다른 글
| [내일배움캠프] 11일차 -1 (0) | 2025.05.26 |
|---|---|
| [내일배움캠프] 11일차 (0) | 2025.05.26 |
| [내일배움캠프] 주말 공부 -1 (0) | 2025.05.25 |
| [내일배움캠프] 10일차 (0) | 2025.05.23 |
| [내일배움캠프] 9일차 (0) | 2025.05.23 |