본문 바로가기

분류 전체보기

(18)
15. Examining runtime time 시간을 측정하다 왜 코드의 시간을 측정할까? -> 우리에게 optimal(최적의) 코드를 고를 수 있게 함. -> 빠른 코드 => 효율적인 코드 ​ %timeit 이라는 파이썬 magic command를 이용하여 런타임을 계산한다. * magic command는 ? pass ToDo (교수님따라하깅) 나중에 공부해서 추가해둬야지.. import numpy as np rand_nums = np.random.rand(1000) 라는 코드가 있으면 %timeit rand_nums = np.random.rand(1000) 을 통해 런타임을 측정할 수 있다. ​ ​ 여기는 정말 모르겠어서 강의를 듣고 다시 쓰는걸로.. 포기..
14. Numpy Arrays 드디어 넘파이!!!!!!! import numpy as np 넘파이에 들어있는 함수들을 사용하기 위해 numpy를 np라는 간단한 형태로 불러와 준다. ​ list 와 numpy array nums_list = list(range(5)) nums_np = np.array(range(5)) [0, 1, 2, 3, 4] array([0, 1, 2, 3, 4]) ​ ​ int가 들어가 있는 numpy array 는 dtype('int64') nums_np_ints.dtype float가 들어가 있는 numpy array는 dtype('float64') nums_np_floats.dtype ​ array의 타입이 어떻게 나오는지 궁금해서 print(type(nums_np)) 하면 가 출력됨 ​ Broadcast..
+ 파이썬 이야기 교수님의 Lecture 2에서 - Your code should be a tool used to gain insights, not something that leaves you waiting for results. ​ "효율적인" 파이썬 코드를 정의하면 efficient 파이썬 코드는 런타임이 빠르고 메모리가 적은 것 ​ 효율적인 "파이썬" 코드를 적기 읽을 수 있는지에 집중. 파이썬의 코드를 의도된 것으로 사용하기 # Non - Pythonic doubled_numbers = [] for i in range(len(numbers)): doubled_numbers.append(numbers[i]*2) # Pythonic doubled_numers = [ x*2 for x in numbers ] 처럼 효율..
13. lambda, map 13.1 lambda lambda(람다)는 함수를 생성할 때 사용하는 예약어로 def와 동일한 역할을 한다. 보통 함수를 한 줄로 간결하게 만들 때 사용한다. def를 사용해야 할 정도로 복잡하지 않거나 def를 사용할 수 없는 곳에 주로 쓰인다. -점프 투 파이썬 166페이지- ​ lambda 매개변수1, 매개변수2, ... : 매개변수를 사용한 표현식 add = lambda a, b: a+b result = add(3,4) print(result) #7 13.2 map map은 연산과 값을 서로 적용해주는 역할을 한다. 아래는 교수님께서 예시로 들어주셨던 코드이다. nums = [1.5, 2.3, 3.4, 4.6, 5.0] rnd_nums = map(round, nums) print(list(rnd_..
12. Enumerate, Zip 12.1 enumerate 리스트나 문자열에 있는 index의 값을 출력하고 싶을 때 사용한다. 리스트에 있는 모든 인덱스와 그에 상응하는 값을 반환한다. range(len(x))를 대신하여 enumerate(x)를 반복한다. seasons = ['spring' , 'summer', 'fall', 'winter'] 라는 리스트가 있는데 내가 만약 0 spring 1 summer 2 fall 3 winter 이런식으로 인덱스와 그 값을 전부 프린트하기를 원한다고 해보자. 만약 enumerate 함수를 사용하지 않으면 index = 0 for season in seasons: print(index, season) index += 1 #혹은 for index in range(len(seasons)): prin..
11. Ternary conditional operator, underscore, context manager, with 11.1 ternary conditional operator (삼항 연산자) 삼항 연산자가 뭔지 몰라서 단항 연산자, 이항 연산자를 먼저 공부해봤다. 우선 이것들은 연산 대상의 개수에 따라 연산자를 분류한 것이다. ​ 단항 연산자 not, +, - 는 단항 연산자이다. 여기서 +와 -는 더하기나 빼기가 아니라 양수, 음수를 구분할 때 쓰이는 부호를 의미한다. 연산자에 항이 하나만 필요한 경우! ​ 이항 연산자 +, -, *, / , .. 대부분의 우리가 알고 있는 연산자들은 이항 연산자이다. 연산자를 사이에 두고 항이 2개 필요하다는 뜻이다. ​ 삼항 연산자 if else 문이 삼항 연산자이다. 읽고, 이해하기 쉬우며 줄의 수를 줄일 수 있기 때문에 사용한다. ​삼항 연산자를 이해하기 위해 다음의 코드를..
10. tuples, sets 10.1 tuples immutable 바뀔 수 없는 자료형 list는 [], dictionaries는 {}, tuples는 ()를 사용한다. fruits = ("apple", "orange", "tomato", "banana") print(type(fruits)) # print(fruits) # ('apple', 'orange', 'tomato', 'banana') 10.1.1 tuples의 특징들 요소별 수정, 삭제, 변경만 불가능하지 새로 생성하면 덮어쓰기는 가능하다. 튜플의 원소가 하나일때 요소 끝에 ,를 붙여주어야 한다. (그렇지 않으면 tuple을 string 형태로 인식해버림) 튜플의 원소가 여러개일 때 튜플 생성 시 () 안해줘도 알아서 생기지만 가독성을 위해 해주는 것이 좋다. 10.1...
9. dictionaries 9.1 dictionaries 정의 자체는 key와 value가 짝을 지어서 ,로 구분된 자료형태이다. 이름과 같이 사전과 같은 형태를 가지고 있다. 대괄호 말고 {} 중괄호를 사용한다. dictionaries 자체는 mutable.(key를 바꿀 수는 없음) value와 key로 구성된다. stuff['hello'] 'Hello there, how are you?' >>> stuff['chat'] 'How is the weather?' >>> stuff['goodbye'] 'It was nice to talk to you!' ​ * len(stuff) 는 3이다. ​ key 에는 문자열도 들어갈 수 있고, 숫자도 들어갈 수 있다. 어떤 데이터 종류이든 상관없다. 인덱스가 아니라 key 값을 [] 안에 ..