#Day05_01_basic
#!/usr/bin/env python
# coding: utf-8
# day05_01_data_type
# 주석
print('hello
,world')
# 데이터 타입
#숫자형
#정수형
a =123
b=-123
print(a)
print(b)
#실수형
c=123.123
d=100.000
print(c)
print(d)
print(c-d) #실수형은 정확하게 계산을 시킬 수 없는 영역이기 때문에 뒤에
0000001이 붙는다.
123.123 ==
123.123
#문자형을
만드는 법
print('')
print("")
a="""
가독성 좋게 하는 법
"""
print(a)
# 파이썬은 문자형이 존재하지 않는다.
# 문자열만 존재한다.
a='hello world'
print(a)
print(a[0])
print(a[6])
print(a[0:6])
print(a[:])
print(a[0:])
print(a[:7])
print(a[7:])
#실습 w를 W로 변경
#조합을
해서 변경
w='w'
w=w.upper()
print(a[:6]+'W'+a[7:])
print(a[:6]+w+a[7:])
a='hello'
b='korea'
print(a,b)
#LIST
#여러가지
데이터 형을 동시에 가지고 있는 구조
#파이썬은
배열형이 존재하지 않는다.
#만드는
방법
a=[1,2,3]
a[1]
b=['a','b','c']
type(b) #b라는 변수의 데이터 타입을 검사
# b변수에서 'b'를 출력해라
b[1]
c = a+b
#c변수에서 값을 기준으로 2부터 'b'까지 출력
print(c[1:5]) #슬라이싱 이용
#리스트 : 값의 수정이 가능
#c변수의 1번째 방의 값 3을 5로
변경해보기
c[1]= 5
#c변수의 1번째 방의 값 2를 [8,9]로
변경
c[1]=[8,9]
#c변수의 2번째 방의 값 5를 8,9로
변경
c[2:3]=[8,9]
c
#딕셔너리
#-json 의 형태와 유사
#java 의 map형태와 유사
#key와 value로 이뤄진 데이터 타입
#딕셔너리
자료형 만들기
a={'baseball':'야구','name':'korea','job':[1,2,3]}
print(a)
print(a.get('baseball'))
print(a.get('name'))
print(a['name']) #고유 key 로 [조회] 가능
#print(a[1])
#안되는
이유 : key는 고유성을 가져야한다. 만약 인덱스로 조회가
가능하다면 키가 1인 경우 중복되게 된다.
#구조적으로
딕셔너리는 순서가 없으므로 인덱스를 통한 조회가 불가능하다.
print(a['job'][2])
#딕셔너리
값 추가
a['python'] =
'python'
a
#딕셔너리
값 삭제 del
del a['python']
a
#Day05_02_basic.py
#!/usr/bin/env python
# coding: utf-8
#더하기
print(1+1)
#문자연산
print('a'+'b')
#자료형
연산 = 합치기
list01 = [1,2]
list02 = [3,4]
print(list01 +
list02)
print(list02 +
list01)
dic1 = {1:1,2:2}
dic2 = {3:3,4:4}
#print(dic1+dic2) #인덱스 넘버링이
없기 때문에 더해질 수 없다 .
dic1.update(dic2)
dic1
#나머지
사칙연산
print(3-2)
print(3 *2)
print(3**2)
print(3/2) #일반적인 나누기
print(3//2) #몫
print(3%2) #나머지
#실습, a변수의 값이 짝수인지 검사하는 수식을 만들어주세요.
#ex) true, false 인지
출력
a = 7
print(a%2 ==0)
#비교연산자
#응답
값이 무조건 네, 아니요로 나오는 것
1==1
1!=1
1>1
1>=1
'a'=='a'
'a'=='b'
[1,2,3]==[1,2]
#조건문
#조건에
따른 프로그램의 순서를 제어하는 기법(문법)
a = 10
#a가 10보다 크면 10보다 크다, 작으면
작다
#10보다 큰 경우 a의 값도 출력
#들여쓰기
중요함
if a>10:
print('10보다 금')
print(a)
elif a==10:
print('10이다')
else:
print('10보다 작음')
#실습, 홀짝프로그램
a=7
if a%2==0:
print('even')
else:
print('odd')
#파이썬의
조검 특별한 if조건문
#x in 오브젝트
#만일 2가 list01에 있으면 , 찾는
값이 존재한다. 를 출력
list01 =
[1,2,3,4]
if 2 in list01:
print('찾는
값 존재')
#pocket 안에 bill 이 존재하면 택시를 타고 가자
#card 가 존재하면 버스를 타고
가자
#없으면
걸어가자
pocket =
['coin','none','card']
if 'bill' in
pocket:
print('taxi')
elif 'card' in
pocket: #elif는 무한으로 생성
print('bus')
else:
print('walk')
#반복문
#조건에
따라 프로그램을 여러번 동작시키는 것
#for : 횟수가 중요한 경우
#while : 조건이 중요한 경우
#list01의 모든 값을 출력
list01= [1,2,3,4]
print(list01)
#값들을 +100씩 하여 출력
for object in
list01:
print(object+100)
#a의 변수에 o라는 문자가 몇번 출현하는지 횟수를 구하여라
a= 'hello world
korea it'
cnt =0
for item in a: #a변수를 반복문을 이용하여 순회
if 'o' in item: #a변수의 각 문자가 o인지 확인
cnt = cnt+1
print(cnt)
#while
i = 0
while i <=4:
print(i)
i+=1
#함수(function)
#특정한
작업 동작을 사전에 미리 정의하여 동작하도록 제공
#python이 직접 가지고 있는 함수를
내장함수
#직접
만드는 함수를 외장함수(커스텀함수)라고 부름
#커스텀
함수 만들기
#홀짝
검사기 만들기
#def 이름():
# 구현
def
odd_machine(val):
if (val % 2 ) == 0:
return '짝'
else:
return '홀'
odd_machine(2)
#내장함수
#입력값을
전부 더해주는 함수
sum([1,2])
max([1,3,5,7,8,3,12,3,1])
range(10)
for i in
range(10):
print(i)
#파이썬에
존재하는 조금 특별한 내장함수
#실행가능한
문자열을 받아서 실행해주는 함수
1+2
eval('1+2')
eval('odd_machine(1)')
list01 = [1,2,3,4,3,42,52,35,2,3,4,5,5,6,6,6,6,4,4,3]
len(list01)
len('korea
pyhton')
a='hello world'
for i in
range(len(a)):
#print(i)
print(a[i])
#반올림
print(round(3.14))
print(round(3.14324234324,3))
#3자리 까지
#데이터
형변환
print(1+1) #숫자 연산
print('1'+'1') #문자 연산
#숫자와
문자를 연산한다면?
print(str(1)+'1')
print(1+int(1))
#객체의
타입 확인
print(type(1))
print(type('1'))
#정렬함수
list02 =
[5,3,6,2,1,11]
list02
print(sorted(list02))#오름차순
print(sorted(list02,reverse=True))#내림차순
Day05_03_packages
#!/usr/bin/env python
# coding: utf-8
#외부
패키지 이용하기
#날짜
import datetime
as dt
get_ipython().system('pip
install scikit-learn')
# 현재 날짜
dt.datetime.now()
#now_dt 를 이용, 년도, 월, 일, 시간을 출력해보라
now_dt =
dt.datetime.now()
print(now_dt.year)
print(now_dt.hour)
now_dt.strftime('%Y-%m-%d')
#년월일
now_dt.strftime('%Y
/ %m / %d') #년월일
now_dt.strftime('%H:%M:%S')
#시간을 포멧을 맞추어 출력
#날짜의
연산
now_dt + dt.timedelta(days=7)
#실습하기
#now_dt를 이용해서 1주일 이전을 출력해라
now_dt +
dt.timedelta(days=-7)
now_dt +
dt.timedelta(days=-1)
import numpy as
np
#배열의
사용이유
#많은
숫자형 데이터를 하나의 변수에 넣고 관리할 때 사용하게 되는 리스트는 속도가 느리고 , 메모리를 많이
차지하는 단점이 존재한다.
#리스트는
추가, 삭제 , 수정 등이 배열에 비해 자유롭기 때문에 속도가
느리고, 사용상 이점을 갖는다.
#파이썬은
리스트만 존재하고, 배열이라는 개념이 존재하지 않는다.
#유일하게
문자열만 기본적으로 배열의 형태를 갖는다.
#배열이
속도가 빠른 이유는 배열에 저장되는 자료형은 모두 같은 자료형이기 때문.
a=
np.array([1,2])
print(a)
b =
np.array([[1,2],[3,4]])
b
# shpae는 배열의 형태를 리턴한다. 여기서 a는 (2,) 가 리턴되고 b는 (2,2)가 리턴된다 . (2,2)는 2행 2열로 해석 가능하다.
print(a.shape)
print(b.shape)
c=np.array([[1,2,3],[2,3]])
c
#순차적인 증가배열을 만들 때
my_data =
np.arange(25)
my_data
#my_data 리스트의 모든 자리에 +1씩 해라
my_data + 1
my_data * 2
my_data ==2 #bool 값 리턴
#실습
#my_data의 데이터에서 5보다 큰 데이터가 있는지 확인
my_data >5
#배열의
인덱싱(조회)
my_data[0]
my_data[2]
my_data[:]
my_data[4:]
my_data[4:100000]
#out_of_index
문제가 발생하지 않는다. (python이
조정해줌 )
my_data[[0,1,20]]
my_data[my_data
%2==0]
b =
np.array([[1,2],[3,4]])
#b[행,열]
b[1,1]
b[0,0]
#실습하기 b의 모든 행의 1열을 출력하라
b[:,1]
import pandas as
pd
#r의 vector와 같은 pandas 의
2가지 데이터 구조 중 하나
pd.Series(1)
s=pd.Series([1,2,3,4])
s[:]
s[0]
s[1]
s[3]
#인덱스의
이름을 가진 시리즈 만들기
s=pd.Series([99000,5000,30000],index=['서울','부산','인천'])
s
#실습하기 , s시리즈에서 부산의 값을 출력해라
s['부산']
s[1]
#r의 Dataframe과 동일한 pandas의 dataframe
dict01 ={'서울':[1,2,3,4],'부산':[100,200,300,400]}
df =
pd.DataFrame(dict01)
#dataFrame은 print()가 아닌 display()로 기본 호출된다.
display(df) #display로 모양까지 출력되게 할 수 있다. 테이블 형태로 출력
display(df)
df['서울']
df.서울
df.index
len(df.index)
df.columns
list(df.columns) #list형으로 형변환, 컬럼명을 리스트 형태로 반환
댓글
댓글 쓰기