AI 부트캠프

프로젝트 수행을 위한 이론 : Python 2 데이터 시각화(1) - 조대연 (패스트캠퍼스, Upstage AI Lab 6기)

소니뒷다리 2024. 11. 25. 17:09

Upstage AI Lab에서는 

1. 줌을 이용한 실시간 강의

2. 온라인 필수 강의 (녹화)

3. 온라인 권장 강의 (녹화)

가 제공된다.

 

그중에 본 포스트에서 기록할 내용은 줌을 이용한 실시간 강의인데, 그 중에서도 본격적으로 시작된 Python 강의이다.

 

 

이번 강의를 사용하기 위한 준비물

 

- Python 3

- Anaconda & Jupyther Notebook

 


Python Baisc

1. 기초 데이터 타입 (Int, Float, String)

 

a. 연산자 

=  :  변수 선언
ex) x=9 :  x라는 변수를 선언(Declaration) & 9라는 값을 할당(Assignment)
==  :  등호
!=  :  부등호
+  :  덧셈
-  :  뺄셈
*  :  곱셈
**  :  제곱
/  :  몫
//  :  소숫점 단위의 나눗셈
%  :  나머지
x += 1  :  x = x + 1

 

b. 정수형(int)과 실수형(float)

1, 2, 3, 4, 5,...  =  정수 int
1.1, 1.2, 2.2, 3.3,...  =  실수 float
int(x)  =  x의 정수 변환
float(y)  =  y의 실수 변환

 

c. 문자열(str)

 

#그룹형 변수, 11개의 변수(공백 포함)
s = "Hello world"

# 그룹형 변수 내의 멤버 수 확인
len(s) 

# 문자열 포맷팅
sentence = "my name is {}".format("Groot")


# 인덱싱 / 슬라이싱

s = "Hello world"  #  그룹형 변수, 11개의 변수(공백 포함)
type(s)  #  = str

# 그룹형 변수 내의 멤버 수 확인
len(s) 

# 문자열 포맷팅
sentence = "my name is {}".format("Groot")

# 인덱싱 / 슬라이싱
temp = "Python"
temp[0]  #  n번째에 있는
:'P'
temp[0:4]  #  [~이상 : ~미만]
:'Pyth'
temp[4:]  #  4번부터 끝까지
:'on'
temp[-1]  #  앞에서 시작 = 0  , 뒤에서 시작 = -1
:'n'

# 문자열 <-> 숫자열
str(x)
int(x)

 

#Tip
<소괄호() 앞에>
temp(!!!) : !!!를 x로 주면서 temp라는 함수를 실행 (호출)

<대괄호[] 앞에>
- temp[???] : temp라는 그룹형 변수에서 ???에 해당하는 멤버를 꺼낸다
- ??? <- index number : str / list / tupe / numpy.array(수치행렬)
- ??? <- key : dict / pandas.DataFrame (정형데이터, ex.Excel)
무엇을 꺼내는 지는 그룹형 변수에 따라 달려있음

 

d. 참 / 거짓 (book)

bool (Boolean 불리언 : George Bools라는 사람에게 따온 이름)

 

t = True

f = False

 

Type(t) 

:  bool

 

2. 함수 (function, method)

a. add_nums(2, 3)

#멀티라인 코드블럭 : def / if / for / while / with / class

def add_nums(num1, num2) :  #  Parameter(매개변수)
	result = num1 + num2
	return result
	
add_nums(2, 3)  #  Argumnet(인자)


#Missing Required Error = 필수 Argument를 주지 않았을 때 생기는 에러

 

b. 매개변수와 인자

- parameter : 매개변수

- Argument : 인자

인자 입력  ->  매개변수 대입

 

c. 디폴트 값 지정

def add_nums(num1, num2=10) 
	result = num1 + num2
	return result
	
add_nums(2)
:12 (num1에 인자 2 대입, num2는 디폴드 값인 10이 대입)

 

d. 함수의 Scope

def add_nums(num1, num2=10) 
	result = num1 + num2
	return result

# result 변수가 아닌 result 변수 내부의 값이 return된다.
# 함수 실행이 끝나면 모두 휘발된다.
# 함수 내부에서 선언한 변수는 함수가 끝나면 모두 사라지기 때문에 따로 꺼내 쓸 수는 없다.

 

 

3. 컨테이너 (Container)

공부할 때 Tip : CRUD에 맞춰 학습하고 기억하면 편함 
<CRUD : Create(생성), Read(읽기), Update(갱신), Delete(삭제)>

 

a. 리스트 (List)  [ , ]

myList = [3, 1, 2, 4, 6] # 리스트의 생성

#append - 아이템 추가하기
myList.append(10)
myList = [3, 1, 2, 4, 6, 10]

#del - 리스트 아이템 삭제 (인덱스 번호로 삭제)
del myList[2]
myList = [3, 1, 4, 6, 10]

#remove - 리스트 아이템 삭제 (가장 앞에 있는 순서로)
myList.remove(4)
myList = [3, 1, 6, 10]

#+ 합치기
youtList = [3, 4, 5]
z = myList + yourList
z = 3, 1, 6, 10, 3, 4, 5]

#sort, reverse - 오름차순, 내림차순 정렬
z.sort()
z = [1, 3, 3, 4, 5, 6, 10]
z.sort(reverse=True)
z = [10, 6, 5, 4, 3, 3, 1]

# List의 경우는 변수로 덮어주지 않아도, 바로 원본에 적용됨

 

b. 딕셔너리 (dict)  { : }

#인덱스 넘버가 아닌 Key를 기반으로 한다.
cage = {Cat : "야옹", Dog : "멍멍"}

cage['cat']
= 야옹

#get
cage['tiger']
= Error

cage.get['tiger')
= (출력 없음)

cage.get['tiger', '죽음']
= 죽음

#in
print('Tiger' in cage)
= False

pirnt('Cat' in cage)
= True

#추가하기 / 수정하기 / 삭제하기
cage['Pig'] = '꾸에에에엑'  #  추가
cage['Pig'] = '꾸이이이익'  #  수정
del cage['Pig']  #  삭제

#keys, values - 키, 밸류 값만 불러오기
cage.keys()
= dict_keys(['Cat', 'Dog']

list(cage.keys())
= ['Cat', 'Dog']

cage.values()
= dict_values(['야옹', '멍멍']

 

c. 튜플 (tuple)  ( , )

t = (5, 6)
type(t)
= tuple

def return_tuple(x, y) :
	return x, y

what = return_tuple(3, 4)

 

d. 집합 (set) { , }

#중복 제거 - 주요 용도
s = {1, 2, 3, 3, 4, 4, 5}
= {1, 2, 3, 4, 5}

temp = [1, 2, 3, 3, 4, 4, 5]
what = list(set(temp))

#교집합 연산
data_a = [1, 3, 4, 10, 5]
data_b = [2, 4, 5, 10, 7]

data_a = set(data_a)
data_b = set(data_b)

data_a.intersection(data_b)

 

4. 조건문과 반복문 (If, for, while)

a. if

def check_price(lunch_price):
        
    if lunch_price > 10000: 
        price_label = "프리미엄 도시락"
    elif lunch_price < 3000: 
        price_label = "저렴이 도시락"
    else: # 나머지 조건 모두 받기
        price_label = "무난무난 도시락"
        
    return price_label
    
    
#FLAG
if [1, 2, 3]:
	print('1 is True')

FLAG = 1

# ~~~
# ~~~~
# ~~~

if FLAG:
    print('1 is True')

 

b. for

# 문법적인 약속
for something in 그룹형변수 :
    ~~~ (something) ~~~

#그룹형 변수 멤버마다 각각 같은 작업을 해줘야한다면 for문을 사용함
nums = [1, 2, 3, 4, 5]
for number in nums:
    print(number+1) 
2
3
4
5
6


#숫자들의 리스트에서 1과 4가 연속으로 나오는 숫자 찾기
list_of_nums = [121142131512315, 1241561717265467, 153462615114151231, 1634263414616123, 15236172821568]
for num in list_of_nums:
    if '14' in str(num):
        print(num)

# for 문의 주된 활용 방식
students = ['철수', '영희', '동수'] 
empty_list = []
for student in students:
    empty_list.append('김' + student) # 리스트에 item 추가하기

print(empty_list)
= ['김철수', '김영희', '김동수']

 

c. while

temp = 1
while temp <= 10:
    print(temp)
    temp = temp + 1 # temp 를 1 증가시켜주려면?