2주차
이번 강의는 내가 원하던 기본적인 명령어들이 많아서 좋다. 평소에 막힐 때 마다 검색해서 귀찮았는데, 이번에 한 번에 정리해두는 것 같아서 좋다.
아래 2주차 내용도 구글 colab 의 ipython 링크에 저장해두었다.
아래 메모는 "치트시트" 처럼 눈으로 훑으면서 전체적인 내용을 파악하는데 도움이 된다. 정확히 파악하려면 ipython 연습 코드를 참조할 필요가 있다.
Lists and Tuples
Tuples
콤마와 괄호로 이루어져있다.
예: score = (5, 4, 3, 5, 2, 4, 3, 5)
tup = ('dance', 5, 2.4)
type(tup) = tuple
tup[0]: 'dance'
tup[2]: 2.4
tup[-2]:5
new_tup = tup + ('sing', 3.5): ('dance', 5, 2.4, 'sing', 3.5)
tup[0:2] = ('dance', 5)
len(tup) = 3
NOTE: tuple is immutable (바꿀 수 없다는 뜻인듯하다)
sort_score = sorted(score): [2, 3, 3, 4, 4, 5, 5, 5]
tuple 속에 tuple 을 넣을 수 있다.
nested_tup = (5,4,('ed','tech'),(4,7),('song',(2,3))) 에서 nested_tup[-1] 은 ('song',(2,3)) 이다.
nested_tup[-1][1] 은 (2,3)이다.
Lists
list 는 tuple 과 유사하지만, mutable (수정가능)하다.
a = ["Ed Sheeran", 9.8, 3]
list 속에 또 다른 list 나 tuple 과 같은 데이터 형태도 포함시킬 수 있다.
a[1] = 9.8
a[-1] = 3
a[1:3] = [9.8, 3]
a2 = a + ["Monica", 5] = ["Ed Sheeran", 9.8, 3, "Monica", 5]
a.extend(["cool",10]) 을 하면, a 가 ["Ed Sheeran", 9.8, 3, "cool", 10] 과 같이 변한다.
b = ["Jack", 1.3, 2]
b.append(["good",10]) = ["Jack", 1.3, 2,["good",10]]
c = ["sining", 4, 3.2] 에서 c 의 첫번째 원소를 바꾸고 싶다고 하자.
c[0]="dancing" 을 하면, c 가 ["dancing",4,3.2] 로 변화한다.
del(c[2]) 를 하면, c 가 ["dancing",4] 로 변한다.
"Rock and Roll".split() = ["Rock", "and", "Roll"]
"TX,CA,NY,NJ".split(",") = ["TX", "CA","NY", "NJ"]
d = "5.4,7,4,5".split(",") 이후 type(d[1]) 을 해보니, str 으로 나온다.
ALIASING
A1 = ["vegatable", 2, 3.8] 이후 A2 = A1 이라고 두었을 때, A2[0]="meat" 로 바꾸면, A1[0] 을 했을 떄, "meat" 가 출력된다.
NOTE: "Aliasing" 이라는 개념인데, 처음 배운다.
B1 = ["money", 3, 1.9] 이후 B2=B1[:] 이라고 할 때, B2[0] = "happiness" 로 바꾸어도, B1[0] 을 했을 때, "money" 가 변하지 않고 출력된다.
Dictionaries
Dictionaries
List 는 index/element 의 조합이라면, dictionary 는 key/value 의 조합이다.
{"x":4,"y":3} 에서 key 는 "x" 와 "y" 이고, element 는 4 와 3이다.
yearborn = {"Ed Sheeran": 1991, "Charlie Puth" : 1991, "Billie Eilish": 2001}
yearborn["Billie Eilish"] = 2001
여기에 yearborn["Ariana Grande"]=1993 을 추가할 수 있다.
del(yearborn["Charlie Puth"]) 를 하면 해당 케이스를 삭제 가능하다.
"Billie Eilish" in yearborn 은 True 를 출력하고
"Justin Bieber" in yearborn 은 False 를 출력한다.
yearborn.keys() 는 모든 키를 list 형태로 출력한다.
yearborn.values() 는 모든 값을 list 형태로 출력한다.
Sets
set 에는 list 나 tuple 처럼 서로 다른 인풋을 저장하지만 순서가 없는 특징이 있다.
grocery = {"carrot", "yogurt", "water", "milk", "ice cream", "butter", "milk"} 를 입력하면, 중복된 값은 한 번만 나타난다.
list 를 set 으로 변환시킬 수 있다. toDoList = ["writing", "software engineering", "data science", "python", "writing"]
toDoSet = set(toDoList) 을 하면, toDoSet 이 {'data science', 'python', 'software engineering', 'writing'} 와 같이 출력된다. (중복되내는 내용이 제거된다)
SetOperations
toDoSet.add("cook") 의 연산을 하면 {'cook', 'data science', 'python', 'software engineering', 'writing'} 이 출력된다.
toDoSet.remove("data science") 을 하면, 집합에서 해당 항목이 삭제된다.
"software engineering" in toDoSet 은 True 를 출력한다.
"deep learning" in toDoSet 은 False 를 출력한다.
toDoToday = {"writing", "data science", "research", "nap"} 으로 정의하고,
toDoTomorrow = {"cooking", "nap", "machine learning", "data science", "meeting"} 으로 정의하자.
두 집합의 교집합을 구하려면, toDoToday & toDoTomorrow 을 입력했을 때, {'data science, 'nap'} 이 출력된다.
두 집합의 합집합을 구하려면, toDoToday.union(toDoTomorrow) 를 입력했을 때, {'cooking', 'data science', 'machine learning', 'meeting', 'nap', 'research', 'writing'} 이 출력된다.
toDoYesterday = {"writing", "data science", "research"} 라 두면,
toDoYesterday.issubset(toDoToday) 는 True 를 출력한다.
To Do List 만들 때 set 커맨드가 유용할 것 같다.
List 와 (key 가 존재하는) dictionary 가 헷갈렸는데, 이번 기회에 정리를 할 수 있었다. set 은 개발할 때 필요한 순간이 있을 것 같다 (예시를 들었던 to do list 앱).
'머신 러닝' 카테고리의 다른 글
[데이터과학 코세라 강의] (3주차-2) 데이터 과학을 위한 파이썬 (0) | 2022.05.21 |
---|---|
[데이터과학 코세라 강의] (3주차-1) 데이터 과학을 위한 파이썬 (0) | 2022.05.20 |
[데이터과학 코세라 강의] (1주차) 데이터 과학을 위한 파이썬 (0) | 2022.05.19 |
[데이터과학 코세라 강의] 데이터 과학 방법론 (0) | 2022.05.19 |
[데이터과학 코세라 강의] (2주차) 데이터 과학을 위한 툴(장비) (0) | 2022.05.17 |