templist = [‘a’, ‘b’, ‘c’, 1, 2]
temptuple = (‘a’, ‘b’, ‘c’, 1, 2)
temptuple = (1,2,[3,4])
tuple(list)
list.append(x) : x를 리스트 맨 뒤에 추가
list.insert(idx, x) : x를 idx 위치에 추가 (기존에 있던 요소들은 뒤로 한 칸씩 밀림)
list.remove(x) : x를 제거 (여러 개면 맨 앞의 하나만 지워지고, 없으면 ERROR)
list.pop() : 맨 마지막 요소를 출력 및 삭제 (스택)
list.index(x) : x 위치 반환 (여러 개면 맨 앞의 인덱스만 반환, 없으면 ERROR)
list.extend(list) : 두 리스트를 그대로 이어 붙임 (튜플도 가능) = list + list
del(dict[key]) : 사전 요소 삭제
dict.keys()
dict.values()
dict.items() : key, value 쌍 얻기
range(end) = range(0, end, 1)
range(start, end) = range(start, end, 1)
itertools.product(*L) : 순회 가능한 여러 개의 객체를 순서대로 순회하는 이터레이터 생성
itertools.combinations(p,r) : 이터레이터 객체 p에서 크기 r의 가능한 모든 조합을 갖는 이터레이터 생성
itertools.permutations(p,r) : 이터레이터 객체 p에서 크기 r의 가능한 모든 순열을 갖는 이터레이터 생성
# itertools.product()
for v1, v2, v3 in itertools.product(l1, l2, l3):
#
for v1 in l1:
for v2 in l2:
for v3 in l3:
for문을 사용해 한 줄로 리스트를 효과적으로 생성
# format
[output for element in iterator if condition]
# list comprehension
L = [x**2 for x in range(10) if x%2 == 0]
#
L = list()
for x in range(10):
if x%2 == 0: L.append(x**2)
for문을 사용해 한 줄로 사전을 효과적으로 생성
# format
{key:value for key, value in iterator if conditon}
# dic comprehension
dic = {x:y**2 for x, y in zip(range(10), range(10)) if x%2 == 0}
#
dic = dict()
for x, y in zip(range(10), range(10)):
if x%2 == 0: dic[x] = y**2
numpy 자료형은 ndarray로 효율적인 배열 연산을 하기 위해 개발되었음
np.array([1,2,3,4])
np.zeroes(shape) : shape(tuple) 모양을 갖는 영벡터/영행렬 생성
np.arange(start, stop, step) : start부터 stop까지 step만큼 건너뛴 ndarray를 반환(start, step은 생략 가능)
np.linspace(start, stop, num) : start부터 stop까지 num 개수의 요소를 갖는 등간격의 1차원 배열 반환
#(10,2) 크기의 영행렬 생성
np.zeros((10,2))
#ndarray([1, 1.1, 1.2, ...., 4.9])
np.arrange(1, 5, 0.1)
#ndarray([0., 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1.0])
np.linspace(0, 1, 9)
X = [1, 2, 3, 4, 5]
B = [True, True, False, False, True]
X[B] = [1, 2, 5]
유니버설 함수는 단순 반복문에 비해, 매우 빠르다.
[1, 2, 3, 4, 5] >= 3
# [False, False, True, True, True]
L = np.array([1, 2, 3, 4, 5])
cond = L >= 3
# 조건을 만족하는 요소의 개수 반환
sum(cond)
# 조건을 만족하는 요소만 반환
L[cond]
#사전을 이용한 정의
pd.Series({'a':1, 'b':2})
#리스트를 이용한 정의
pd.Series([1,2,3,4], index=['a','b','c','d'])
#사전을 이용한 정의
pd.DataFrame({'col1':[1,2,3,4], 'col2':[5,6,7,8]}, index=['a','b','c','d'])
#데이터, 컬럼명, 인덱스 따로 정의
pd.Series([[1,2,3,4], [5,6,7,8]], columns=['col1', 'col2'], index=['a','b','c','d'])
loc의 슬라이싱에서는 맨 뒤 값을 포함 : df.loc['a':'c'] = [1,2,3]
iloc의 슬라이싱에서는 맨 뒤 값을 포함 안 함 : df.iloc[1:3] = [2,3]