들어가면서
- Python for Data Analysis (파이썬 라이브러리를 활용한 데이터 분석)의 모든 내용을 포함하고 있지 않습니다.
- 제가 몰랐던 부분, 헷갈렸던 부분만 정리 되어있습니다.
ch2. pyhon language basics, Ipython and Jupyter Notebooks
jupyter introspection
wildcard(*)가 포함된 문구 다음에 ?를 치면 그안에 포함된 함수들을 출력한다.
import numpy as np
np.*load*?
# load가 포함된 numpy 함수가 출력됨
python basic
- 모든 것은 object이다.
- object는 associated type(e.g., integer, string or function)과 internal data 를 가진다.
- immutable type의 값을 변경할때는 replace를 호출한다.
- import A 는 A.py의 코드를 가져와서 확장하는 것이다.
- a= [1,2,3]은 a 가 list object를 reference하는 것이다.
- a is b (a와 b가 같은 object를 reference 한다)
- a==b (a와 b가 일치 해야한다.)
a = [1,2,3]
b = [1,2,3]
a == b ## True
a is b ## False
- backslash 를 안넣고 special characters 쓰는 법 -> r-string
s= r"this\has\no\special\characters"
ch3. Built-In Data Structures, Functions, and Files
Tuple
A = (1,2,3)
# ()생략 가능
A = 1,2,3
#unpacking tuplbe을 이용한 swap
a = 1
b = 2
b,a = a,b
# *rest로 나머지 unpacking
values = 1,2,3,4,5
a,b,*_ = values
List
- list를 합칠때는 연산이 많다.
- 왜냐하면 새로운 list를 만들고 전부 copy하기 떄문
- list가 이미 선언 되어 있다면,extend를 사용하자
[1,2,3] + [4,5,6]
# 위보다는 아래를 사용하자
a = [1,2,3]
a.extend([4,5,6])
- sq[::2] +2씩 element뽑기
- sq[::-1] -1씩 element뽑기 -> reverse임
Dictionary
- key는 hashing이 가능해야하므로 immutable object만 key로 가능하다.
- keys,items,values 함수로 element에 접근 가능
- squences로 부터 dict 생성 가능
my_dict ={}
for key,values in zip(key_list,value_list):
my_dict[key] =values
default value handling
# dict에 key 가 있는지 없는지 모를때
#1.val을 접근할떄
# common style
if key in my_dict:
val = my_dict[key]
else:
val =default_value
# get
val = my_dict.get(key,default_value)
#1.val을 list로 추가할때
# common style
my_dict ={}
for key, item in zip(keys,items):
if key in my_dict:
my_dict[key].append(item)
else:
my_dict[key] = [item]
# setdefault
my_dict ={}
for key, item in zip(keys,items):
my_dict.setdefault(key,[]).append(item)
# collections
from collections import defaultdict
my_dict = defaultdict(list)
for key, item in zip(keys,items):
my_dict[key].append(item)
- update를 사용하면 dict끼리 합칠 수 있다.
ex) my_dict.update(other_dict)
function
- global keyword 로 local 변수를 함수 밖의 상위 scope에 할당 할 수있다. (저자는 추천하지 않음)
- function 도 object이기 떄문에 list에 들어갈 수 있다.
- data preprocessing 이나 전처리 할때 list에 함수를 넣고 순차적으로 실행할 수 있다.
generator
- 일반적인 함수는 직시 single result를 만들어내지만, generator는 여러개의 값을 제공함으써, 각 반복문이 실행할때 소비할 수 있다.
- generator를 생성할때는 일반 함수의 return 대신 yeild 를 사용하면 된다.
- built-in methods로 빠르게 연산 가능
def squares(n=100):
for i in range(n):
yeild x**2
gen = squares()
# generator expression
gen = (x**2 for x in range(100))
sum(gen)
Error handling and File operations system
- except 할때 Error의 종류로 handling 가능
- Try , except , else , finally 키워드 있음
- f.open()으로 열었다면 f.close()로 닫아야한다. 그래야 자원을 os에게 돌려준다.
- 그러기 싫으면 with문을 사용해야됨. with는 자동으로 f.close한다.
'책 > 파이썬 라이브러리를 활용한 데이터 분석' 카테고리의 다른 글
Ch5 Pandas (0) | 2023.11.22 |
---|---|
ch4 Numpy Basics (1) | 2023.11.15 |
ch10 Data aggregation and group Operations (1) | 2023.11.15 |
ch8 Data Wrangling (0) | 2023.11.15 |
ch11 Time Series (0) | 2023.11.15 |