반응형

 

본 내용은  fastcampus 딥러닝/인공지능 올인원 패키지 online을 정리한 것이다.

 

파이썬 개발 환경 설정

anaconda 설치  

  python 3.7 

jupyter notebook 

 

anaconda

jupyter 환경에서 하게 된다.

 

파이썬 개발 환경 설정

anaconda 통합 platform이다. 

각 플렛폼 마다 다르다.

다운된 것을 실행 하면 된다. 

install 기본값으로 

anaconda 환경을 기본환경으로 한다는 것만 check하면 된다.

 

Jupyter notebook 설치 및 사용법 소개

New를 하면 언어를 선택 가능 python3로 하면 된다.

 

마우스 클릭하고 esc눌리면

cell 은 실행할 코드나 주석 등을 입력

 

녹색    : 타이핑 가능 입력 모드

파란색 : 명령어를 할수 있다. 명령 모드

 

명령 모드 파란색 

명령어 모드에서 h를 눌리면 키보드 단축키가 나온다. -> help

 

cell추가하면 위에 a

cell 아래 추가하면 b

d 두번 눌리면 지우기

 

shift+ enter : cell 실행하고 아래로 옮긴다.

ctrl+enter: cell 그냥 실행하고 cursor안옮긴다.

alt + enter: cell 실행하고 아래로 추가한다.

 

jupyter notebook cell의 type: 

in 이것은 type은 코드이다.

cell 가지고 cell type에서 markdown으로 바꿀 수 있다.

 

markdown in이 없어졌다.

코드 입력할려면 in이 있어야 한다.

 

markdown은 문서를 만들때 문서와 구조를 한꺼번에 하는것

코드에 대한것 깔끔하게 하고 싶다.

# 큰 title

##

###

####

코드모드에서 m markdown

markdown에서 코드 모드 y

 

**python** bold

*cool* itelity

 

list로 하고 싶을 떄 - 순서가 없는 

- pyton 

 - pandas

- java

 

순서 

1. python

2. java

 

 > 비교 연산자 들여쓰기 하는 

> 파이썬은 재밌다고 하더라.

 

마크 다운 수학식 지원 

$y = 3x$

 

코드 지원

 

 

'''pytonn

'''

 

한글로 link사용

[파이썬](url)

 

타입 및 변수

데이터 타입과 컬렉션

변수 : 데이터를 저장하는 공간, 변수

저장공간에 값을 생성하고 이름을 지정

=(대입연산자)를 사용하여 왼쪽은 변수명, 오르쪽은 데이터가 위치 변수 혹은 값 

 

= 대입연산자

== 비교연산자

 

정수형과 실수형

a = 1
b = 2.1

 

print함수 

값을 확인 하는 함수 

함수는 특정 기능 먼저 구형하여 그 함수를 반복적으로 호출하여 사용가능한 코드 블록 

이름 명명 규칙에서 숫자로 시작하면 안된다.

해당 변수의 값을 출력

, 로 여러 변수를 나열하면 한줄에 출력

기본적으로는 한칸 띄어쓰기 후 출력

#뒤에 오는 거은 주석이다.

각 print사이에는 enter이다.

a = 10

b = 11.4

print(a, b)
print(a, 10, 200, b)

sep: 구분자 , 각 출력할 변수 사이에서 구별하는 역할을 함

end: 마지막에 출력할 문자열

shift+tab을 이용해서 자세한 정보 볼 수 있다.

print(a, b, 10, 100, sep = "*" , end ="!!")

space를 *로 대체 

원하시는 출력으로 출력 가능하다.

변수 값 확인법 

print()함수 사용

변수 값을 코드의 마지막에 위치 시킨 후 실행 

print(a)
print(a, b)
a

print는 출력만 하지 output이 아니다.

마지막 값이 전체 값의 out으로 나온다.

 

변수이름 규칙

대소문자 

숫자는 사용가능하되 숫자로부터 시작하면 안된다.

 

숫자로 시작하면 안되는 이유?

4 = 9
print(4)

이해하기 쉬운 것으로  명시적으로 이름을 하는게 좋다.

 

또 한가지 안되는 것이 있다.

class 사용할 경우 녹색으로 변해서 예약어있다.

for

while

if

elif

else

class

try

excpt

class

#,,,

이런것을 사용하고 싶을 경우에는 

_class = 100

print(_class)

_ 로 사용해야 한다.

 

05. 데이터 

기본 데이터 타입 4가지 int, float, str, boolean

int: a = 10

flot: b = 11.45

type(A)

 

None : 아무런 값을 갖지 않을 때 사용

c => 이렇게는 안된다.

python은 무조건 초기화해야 한다.

변수 생성하고 싶은 데 어떤 값으로 해야 할지 모를떄 

초기화 값을 모를때 

 

정수와 실수

a = 5
b = 4

# 숫자형이면 비교 가능
#결과는 boolean이다.
print( a > b ) #True
print( a < b) #Flase
print( a >= b) #True
print( a <= b) #False
print( a == b) #False
print( a != b) #True

 

c = a>b
c = True
print(type(c))
print(c)

 

 

여러가지 연산을 다 할 수있다.

변수의 값은 대입하기 전에 값은 변하지 않는다.

a = 5
b = 4

print(a+b)
print(a*b)
print(a-b)
print(a/b)
print(a%b)
print(a**b)

 

a= 5
b = 4

a + b*4

a+b 를 먼저 하고 싶을 경우에는 (a+b) * 4

 

 

연습문제

a = 9
print(a)
print(a-3)
print(a)

 

변수의 값은 대입이 발생하기 전에는 절대 변하지 않는다.

a = 9
a-3
print(a)

 

a= 9
t = a-3
a = t
print(a)

위에것 비효율 적이여서 아래처럼 바꾼다.

a= 9
a = a-3
print(a)

더 줄이기 

a = 9
a-=3
print(a)

- 뿐만 아니라 +, * , / 등 사용가능하다.

 

 

문자열 타입의 이해 및 활용하기

문자열 

생성 4가지 방법

a = ' '

b = " "

위 두개는 차이점이 없다. 문자열 안에서 사용한 것과 다르게 사용하면 된다.  enter 사용 불가 

 

a = ''' '''

b = """ """

위 두개는 enter사용가능하다.

 

차이점이 있다. 출력은 같지만 

 

escape 문자 

문자열 자체로 쓰이는 것이 아니라 특수 효과로 쓰인다.

\n new line

\t tab 등 

 

indexing은 0부터 ㅣ작한다.

마지막 순서는 -1혹은 len()-1

대괄호 이용해서 index사용할 수 있다.

 

python은 음수 index 지원한다.

0부터 시작하고 음수 index도 지원한다.

음수는 뒤에서 부터 시작한다.

 

인덱스의 범위

범위를 초과하면 string index out of range라는 에러가 난다.

유용한 index사용하기 

 

 

문자열 slicing : 부분적으로 짜르는 것 이다.

시작 : 끝  사이의 문자를 가져온다. 

a = 'Hello world'
a[0:4]

0<= <4

생략도 가능하다.

:끝  0 ~ 끝-1

시작:  시작 ~ 끝

: => 시작 부터 끝 

부분 문자열을 추출 할때

 

문자열 함수

a = 'hello world'

a. 하고 tab을 눌리면 

upper()  대문자

replace('','')

 

format 

temperature = 25.5
prob = 80.0
a = '오늘 기온{}도 이고 , 비율 확률은 {}% 입니다.'.format(temperature, prob)
print(a)

split

.split() 띄여쓰기를 기준으로 한다.

.split('w') 문자열 혹은 기타로 하고 싶을 때  w 기준으로 하고 싶을 때  

a = 'hello world what a nice weather'
a.split('w')

 

 

컬렉션 타입 이해  (List)

컬렉션 -> 어떤 것들의 모음이다. 모음이 어떤 목적에 의해서 모은것인지

list & tuple

list순서가 있는  추가 , 삭제 등 가능 동적으로 크기가 변경 가능

tuple 생성된 후에 변경 불가능

 

list

a = [] 

a = [1,2,3,4,5]

a = 'hello world'

b = list(a)

 

split() 함수 

indexing 

문자열 

a = 'hello wold'

print(a[0]

a[0] = 'j' => 어레가 난다. 'str' objects does not support item assignment

문자열은 불변(immutable) 변경이 안된다. 그래서 다시 생성하거나

문자열이 생성되면 절대 바꿀 수 없다. 

b = 'jello world'

c = 'j'+a[1:]

혹은 replace()함수를 사용해서 

a.replace('h','j') 하지만 a자체는 변하지 않는다 . 출력만 한다.  값을 바꾸려면 대입을 해야 한다.

 

list는 바꿀 수 있다.

a =[1,2,3,4]

a[0] = 100

 

리스트 slicing 

 start: end : increment(1)

 

값 추가 및 바꾸는것

 

컬렉션 타입 이해 -2 (List)

list에도 멤버 함수가 있다.

list에 값을 추가하는것 

.append() 리스트의 끝에 항목을 추가

.extend() 리스트를 연장 += 로도 가능함

a = [1,2,3,4,5]

b = [6,7,8,9,10]

#[1,2,3,4,5,6,7,8,9,10]

a.append(b)

[1,2,3,4,5,[6,7,8,9,10]]

a[5]

[6,7,8,9,10]

=>

a.extend(b) 혹은 a+=b

print(a)

 

append는 항상 마지막에 추가

insert() 원하는 위치에 추가

 

remove() 값 지우기 값으로 지운다. 

a.remove(2) 값으로 지우기

지우고 싶은 값이 없을 경우에는 오류가 난다.

pop() 지우고자 하는 아이템을 반환후 , 삭제

 

index() 찾고자 하는 값의 인덱스 반환

값으로 찾기 없을 경우에는 에러 

 

in 키워드 : 리스트 내에 해당 값이 존재하는지 확인

a = [1,2,3,4,5,10]

b = 10

c = b in a # True => b가는 값이 a에 있는 가 ?

 

 

list 정렬

sort() -> 리스트 자체를 내부적으로 정렬

sorted() -> 리스트의 정렬된 복사본을 반환

a= [9,10,7]

a.sort(reverse=True) =>내림차순

 

컬렉션 타입 이해 -3(tuple)

튜플은 괄호를 이용한다. 

a=[1,2,3] =>list

a = (1,2,3) => tuple

tuple은 생성된 후 수정 불가 

 

거의 사용하지 않지만 

사용 원인 

튜플의 값을 차례대로 변수에 대입

a = (100,200)

a = 100, 200 => 괄호를 생략 가능하다. 

type(a)

a, b = (100,200) => multiple return 

print(a,b)

변수 여러개 대입하거나 할 수있어서 편한다. tuple unpacking

함수는 값을 한개 할 수있지만 tuple로 반환하면 여러개 할 수있다.

 

연습문제

a = 5
b = 4

#logic
a = b
b = a

print(a,b)

 

a = 5
b = 4

#logic
temp = a
a = b
b = temp

print(a,b)

a = 5
b = 4

a,b = b,a
print(a,b)

 

컬렉션 타입 이해 -3(dict)

dict : 키와 값을 갖는 데이터 구조

dictionary는 순서가 없고  index가 없다.

a = {}

key , value를 복수개를 가지고 있다.

 

기존에 키가 존재하면 , 새로운 값으로 업데이트

존재하지 않으면 , 추가

동일한 키가 중복으로 두개 있을 수 없다.

value는 여러개 있을 수 있다.

 

update()  두 딕셔너리를 병합함

겹치는 키가 있다면 parameter로 전달되는 키 값이 overwrite된다.

 

key 삭제 

del 키워드 사용 범용적으로 사용할 수 있다. 

pop 함수 이용

a.pop('b') 

del a['b']

 

c = 100

del c

print(c) => undefined

 

딕셔너리의 모든 값을 초기화

clear()

변수명.clear()

 

in  

key값 존재 확인

O(1) 연산 

 

'b' in a

in keyword는 기능이 매우 중요하다.

in list, dict 두개 다 가능하다.

 

a.get('d') ->값이 없어도 오류가 안난다.

a['d']

 

if 'd' in a:

  print(a['d'])

 

keys()  키만 반환

values() 값만 반환

items() 키, 값의 튜플을 반환

list(a.items())

 

 

컬렉션 타입 이해 -3(set)

set은 거의 사용할 일이 없다.

중복이 안되고 순서가 없는 

indexing이 없다. 순서가 없다. 오류가 없다. indexing이 없는 것은 순서가 없다는 것이다. 

a = set()

a={}=>이런식으로 할 수 없다.

b = set(a)

print(b) =>중복이 허용 되지 않는다.

 

a = {1,2,3}
b =  {2,3,4}
print(a.union(b)) #합집합
print(a.intersection(b)) #교집합
print(a.difference(b)) #차집합
print(a.issubset(b)) #부분 집합 

 

 

 

 

반응형

'교육동영상 > 01. 딥러닝인공지능' 카테고리의 다른 글

06. 이미지 분석 tensorflow 2.0  (0) 2020.11.25
05. Tensorflow 2.0 Pytorch  (0) 2020.11.24
04. 인공지능에 대한 개념과 준비  (0) 2020.11.23
03. python 함수  (0) 2020.11.19
02. python 조건문, 반복문  (0) 2020.11.19

+ Recent posts