파이썬 2일차에는 파이썬에서 사용하는 데이터의 종류에 대해 배웠다.
1. Numbers
2. Boolean
3. String
4. List : [ ]
5. Tuple : ( )
6. Dictionary : { }
7. Set
아래는 jupyter notebook으로 실습한 내용들. 이탤릭체는 결과물이다.
1. Numbers : 숫자 데이터 타입, int(정수)와 flout(실수)
2. Boolean : True, False
3. String :: 문자 데이터 타입, ", ' 둘다 사용가능, """ 세개 사용하는 경우 멀티라인 문자열
- 문자열 offset(오프셋)인덱스 : 특정위치의 문자 선택
a = 'abcdefghijk"
# [start : end]
a[1:3], a[-2], a[:]
('bc', 'jk', 'abcdefghijk')
# [start : end : strid]
a[::2], a[::3], a[2,8,2], a[::-1]
(acegik', adgj', 'ceg', 'kjihgfedcba')
#len (문자 길이 length)
len(a)
11
a[4:10][3:5]
hi
Quiz . data변수를 선언 후 문자열 오프셋을 이용하여 짝수만 거꾸로 출력되도록 코드를 작성하세요.
data = "0123456789"
result = data[2::2][::-1]
result
# 문자열 함수
a = " FAST campus datascience "
#대문자로 바꿔주는 함수 (저장되지는 않음)
a.upper(a)
' FAST CAMPUS DATASCIENCE '
# 소문자로 바꿔주는 함수
a.lower(a)
' fast campus datascience '
dir(a) -- 사용할 수 있는 모든 함수를 보여줌.
a.find("c") --c가 몇번째 문자열에 있는지 확인(여러번 나올 경우 가장 빠른)
6
a.count("a") -- a가 몇번 나오는지
3
#공백제거
a.lstrip(), a.rtsrip(), a.strip()
#replace : 문자열 변환
a.replace("a", "b")
' Fast cbmpus dbtbscience '
price = "5,000"
result = price.replace(",","")
type(int(result)
int
#체이닝 --문자열이 요런 패턴인지 맞으면 True, 틀리면 False
a, a.endswith("science"), a.rstrip() endswith("science")
(' FAST campus datascience ' , False, True)
# join : 리스트 데이터를 문자열로 바꿔줌
ls = ["test", "data", "fast"]
"," join(ls)
'test, data, fast'
4. List : [ ]
- 순서가 있는 데이터 집합
- collection, iterable
- iterable : '집합' 그 자체보다는 '개별 원소를 반복적으로 셀 수 있는"이라는 문맥적인 의미가 있다고 함. --googling
#리스트 선언
a = [1, 2, 3]
b = ["fast", "campus", "data"]
c = [1, 2, [3, 4]]
a,b,c
([1, 2, 3], ["fast", "campus", "data"], [1, 2, [3, 4]]
# offset
ls = ["fast", "campus", "data", "python"
ls[1], ls[-1], ls[::-1], d[2][1]
('campus',
'python',
['python', 'data', 'campus', 'fast'],
4) -- 위에서 선언한 d의 0,1,2번째의 0,1번째 수
# 데이터 추가
ls.append("test")
ls
[ 'fast', 'campus', 'data', 'python', 'test' ]
ls.sort(key=len)
ls
[ 'data', 'fast' , 'test', 'campus', 'python']
# 리스트 요소 끄집어 내기
ls.pop()
python
ls
[ 'data', 'fast' , 'test', 'campus'] -- 위에서 python을 끄집어 내서 삭제했음.
# 리스트 데이터 수정
ls[1] = "FAST"
ls
[ 'data', 'FAST' , 'test', 'campus' ]
리스트의 복사
- 얕은 복사 : 주소 값만 복사
- 깊은 복사 : 메모리 상에서 복사
a = [1,2,3]
b=a
print (a, b)
[1,2,3][1,2,3]
a[2] = 4
print(a, b)
[1,2,4] [1,2,4]
c= a.copy()
print(a, c)
[1,2,4] [1, 2, 4]
a[2] = 5
a, b, c
[1, 2, 5] [1, 2, 5] [1, 2, 4] -- b는 얕은복사, c는 깊은 복사
5. Tuple : ()
- 리스트와 같이 순서가 있는 데이터 타입
- 데이터의 수정이 불가능
- 리스트보다 메모리 자원 적게 사용
# 튜플 선언
tp1 = 1,2,3
tp2 = "a", "b"
tp3 = (1, "b")
tp1, tp2, tp3, type(tp2)
((1,2,3), ('a', 'b') (1, 'b'), tuple)
tp1[2], tp1[::-1]
(3, (3,2,1))
6. Dictionary : {}
- 데이터의 순서가 없고, key, value의 쌍으로 데이터가 이루어짐
- 선언 {key1: value2 , key2 : vlaue2}
- key값은 문자열이나 정수 데이터타입만 사용가능.
dic = {
1 : "one".
"A" : ["data", "python"],
"숫자" : 1234,
2: "two",
}
type(dic), dic
(dict, {1 : 'one', 'A' : [data, python'], '숫자' : 1234, 2 : two})
# update
dic1 = {1: "a", 2: "b"}
dic2 = {3: "d", 2: "c"}
print(dic1, dic2)
dic1.update(dic2)
dic1
{1: 'a', 2: 'b'}{3: 'd', 2: 'c'}
{1: 'a', 2: 'c', 3: 'd}
7. 집합 Set
- 중복되는 데이터가 없는 데이터타입
- 교집합, 합집합, 차집합과 같은 집합 연산 가능
- 리스트에서 중복되는 데이터 제거할 떄, 공통 데이터 뽑아낼 때 사용
- 수정이 안되므로 리스트로 형 변환 후 수정해야함
- 형 변환할 때 순서가 항상 보장되지는 않음.
ls = [ 1,2,3,4,1,2,3]
s = set[ls]
type(s), s
(set, {1,2,3,4} )
s1 = set([1,2,3,4])
s2 = set([3,4,5,6])
#교집합
s1&s2 , s1.intersection(s2)
({3,4}, {3,4})
#합집합
s1 | s2, s1.union(s2)
({1,2,3,4,5,6}, {1,2,3,4,5,6})
#차집합
s1-s2, s1.difference(s2)
({1,2}, {1,2})
다 쓰고 보니 외계어 같긴 하다. 데이터사이언스스쿨에서 배운 내용들을 매일매일 블로그에 복습을 하려고 한다. 나중에 피가되고 살이되겠지!
'낭만적(?) 일상 > 세미나, 교육' 카테고리의 다른 글
패스트캠퍼스 데이터사이언스스쿨FIT 3주만에 환불.. (14) | 2019.04.22 |
---|---|
탈잉에서 나한테 맞는 데이터 분석 수업을 찾았다! (1) | 2019.04.17 |
패캠_데이터사이언스스쿨_파이썬1일차 (0) | 2019.03.31 |
패캠_ 데이터사이언스스쿨_수학2일차 : 어제보다는 낫지만.. (0) | 2019.03.28 |
패캠_데이터사이언스스쿨_수학1일차 : 멘붕, 새로운 세계 (0) | 2019.03.26 |