CodeOnWeb
로그인

Python 기초 실습

AI PM 강의 [2. Python 기초] 실습

서 종한 2018/08/30, 15:16

내용

AI PM 강의 (49)

Python 환경 만들기 Python 기초 실습 Python 기초 요약 Python 활용 실습 Python 활용 요약 Linear Regression 01 Linear Regression 02 Linear Regression 03 Linear Regression 04 Linear Regression 05 Linear Regression 06 Linear Regression 요약 Logistic Regression 01 Logistic Regression 02 Logistic Regression 03 Logistic Regression 04 Logistic Regression 05 Logistic Regression 요약 추천 시스템 실습 - 내용 기반 추천 추천 시스템 실습 - 협업 필터링1 추천 시스템 실습 - 협업 필터링2 TMDB API키 만들기 추천 시스템 요약 ML 방법론 및 결과 해석 실습 - 데이터셋 나누기 ML 방법론 및 결과 해석 실습 - Skewed Classes ML 방법론 및 결과 해석 실습 - Precision/Recall ML 방법론 및 결과 해석 실습 - Down/Up Sampling ML 방법론 및 결과 해석 요약 Neural Network 01 Neural Network 02 Neural Network 03 Neural Network 04 Neural Network 요약 Convolutional Neural Network 01 Convolutional Neural Network 02 Convolutional Neural Network 03 Convolutional Neural Network 04 Convolutional Neural Network 05 Convolutional Neural Network 06 Convolutional Neural Network 요약 ML as a Service (MLaaS)

AI PM 강의 V1

일단 해보기

'hello world'를 출력 해 봅시다

변수(variables), 할당(assignment), 연산(operation)

변수 a에 2를 할당한다
변수 b에 1을 할당한다
변수 a와 변수 b를 더하는 연산을 하고, 결과를 변수 c에 할당한다
변수 c값을 출력한다

실행되지 않는 코드 설명(주석)을 넣기 위해서는 줄의 맨 앞에 '#'을 넣습니다.

정수가 아닌 실수 값이라면 어떤 결과가 출력 될까요?

변수,할당,연산 해보기1

정답SHOW

사칙 연산을 완성해 봅시다

  • '-' 연산자로 뻴셈을 합니다
  • '*' 연산자로 곱셈을 합니다
  • '/' 연산자로 나눗셈을 합니다

문자열(텍스트)을 할당하고 연산 할 수 있습니다

변수,할당,연산 해보기2

정답SHOW

그렇다면 'hello world' 출력 하려면 어떻게 해야 할까요?

변수,할당,연산 해보기3

정답SHOW

문자열의 뺄셈/곱셈/나눗셈 연산은 어떤 결과가 나올까요?

자료형(data type)

숫자, 문자열을 변수에 할당 해 보고 연산과 출력을 해 보았습니다. 그렇다면 Python에는 어떤 형태의 값을 할당하고 연산 할 수 있을까요?
Python은 다양한 자료형을 가지고 있지만 대표적인 몇 가지만 소개하겠습니다.

  • Boolean: 참(True), 거짓(False)
  • Number: 정수, 실수, 분수, 복소수
  • String: 텍스트
  • Byte, byte array: 이미지와 같은 특수 형태의 데이터
  • List: 순서를 갖는 여러개 값의 배열
  • Tuple: 리스트와 동일. 하지만 List에 있는 많은 기능이 생략
  • Set: 중복없는 값의 집합 (순서 없음)
  • Dictionary: 키(key)-값(value) 쌍의 모음

Boolean

boolean은 참(True)/거짓(False) 중 하나의 값을 갖습니다.
True/False라는 상수를 변수에 할당하여 boolean형 변수를 만들거나 특정 조건을 만족 하는지 여부를 표현식으로 나타내는데 사용합니다

Number

위의 실습에서 Number 자료형의 기본적인 할당/연산을 다뤘습니다.
여기에서는 더 다양한 Number 자료형의 특징 및 연산을 소개하도록 하겠습니다.

정수형, 실수형의 구분은 쉽게 소수점 여부로 구분된다고 보시면 됩니다.

정수형 -> 실수형 변환은 float라는 변환자를 이용하여 할 수 있습니다.

실수형 -> 정수형 변환은 int 변환자를 이용합니다.

실수형을 정수형으로 변환은 소수점 아래를 버린다고 보시면 됩니다.

그렇다면 분수형은 어떻게 표현할 수 있을까요?

'/'은 연산을 수행하는 기호라 $\frac{1}{4}$와 값은 동일하지만 정확한 분수의 형태는 아닙니다.

그렇다면 분수형은 fractions.Fraction({분자}, {분모})를 사용하여 나타낼 수 있습니다.
(새로운 개념들이 많이 나오지만 일단 그렇다고 하고 넘어갑시다 ^^)

물론 분수형 변수의 연산도 가능합니다

마지막으로 사칙연산 이외의 특수한 연산자들을 살펴 보도록 하겠습니다.

  • //: 나눗셈을 하고 가장 가까운 작은 정수를 돌려줍니다
  • **: 연산자는 지수를 나타냅니다. 즉 $13^2$ 연산을 합니다
  • %: 나눗셈을 하고 난 나머지를 돌려줍니다

-13 // 2의 연산은 무엇일까요?

List

list: []로 묶인 순서가 있는 값들의 묶음 입니다.

리스트 안의 값을 가져오기 위해서는 어떻게 해야 할까요?
a[(index)] 형식을 사용하고 index에는 가져올 값의 리스트 내의 순서를 적어줍니다.
이때 주의할 점은 순서(index)시작이 1이 아닌 0부터 라는 점입니다.

도대체 무슨 말인지...다음의 코드를 실행해 봅시다.

List 해보기1

정답SHOW

array의 index 값을 바꿔가면서 값을 출력 해 봅시다.
i = 3이면 어떤 값이 출력 될까요?

List 슬라이싱

리스트에서 여러개의 값을 한번에 읽어오기 위해서는 슬라이스를 사용합니다
슬라이스는 []안에 콜론(:)으로 구분하여 {시작 index}, {끝 index+1}, {step}을 차례로 넣습니다.

List 해보기2

정답SHOW

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]에서 슬라이싱을 이용해 짝수만 읽어오기 위해서는 어떻게 해야 할까요?

문자열 List

리스트의 값으로 숫자 뿐만 아니라 문자열(텍스트)도 가능합니다

Tuple

순서가 있는 값 들의 묶음을 표현하는 또 다른 방법으로 튜플도 있습니다.
[]대신 ()를 사용합니다.
튜플이 훨씬 간단하고 빠르지만 리스트에서 제공하는 많은 기능들이 생략되어 있습니다.

튜플을 이용하여 한줄의 코드로 여러 변수의 값을 할당 할 수 있습니다.

튜플을 이용한 값 바꿔치기(swapping)는 아래와 한줄로 구현 가능합니다.

튜플 만들 때, ()를 생략해도 됩니다

Set

set는 {}로 묶인 중복 없는 값들의 집합입니다.

위의 결과를 보면 set의 몇가지 특성을 확인 할 수 있습니다.

  • 정의한 순서가 아닌 임의의 순서로 저장됨
  • 중복된 값은 하나만 저장

list -> set, set -> list 변환 할 수 있습니다.

set은 사전적인 의미로 집합이며 실제 집합 관련 연산이 가능합니다.

Dictionary

마지막으로 사전에 대해서 알아보겠습니다. 우리가 실제로 사용하는 영어사전을 생각하시면 됩니다.
사전은 표제어(key)와 그 뜻(value)으로 구성되어 있는데요
Python에서도 동일한 개념으로 사전(dictionary)을 구성합니다.

여러개의 데이터를 넣기 위해서는 리스트와 동일하게 콤마(,)로 구분합니다.

Dictionary 해보기

정답SHOW

사전의 key를 바꿔가면서 값을 출력 해 봅시다.
k = 'unknown'일 때 어떤값이 출력될까요?

분기 (if-then-else)

프로그래밍에서 정해진 룰을 기준으로 조건을 판단하여 해당 조건에 맞는 기능을 수행하도록 하는 것이 분기문입니다.
Python(거의 모든 프로그래밍 언어)에서 if를 사용합니다.

간단한 if 분기문을 봅시다.

a가 10이 아닌 경우를 분기문에 넣고 싶으면 어떻게 해야 할까요?

비교 조건이 2개 이상 일때는 다음과 같이 구현할 수 있습니다.

물론, 문자열 비교를 이용한 분기문도 가능합니다

만약 여러 조건에 해당되면 어떻게 될까요?

분기 해보기

정답SHOW

a, b 두 수의 상대적 크기를 비교하는 분기문을 작성 해 봅니다.

  • a < b: 'a is less than b'
  • a > b: 'a is greater than b'
  • a == b: 'a is equal to b'

반복 (for-loop)

컴퓨터에게 반복 작업을 시키기 위해서는 루프(loop)라는 개념이 필요합니다. 동일한 작업을 계속 반복하도록 하는 것입니다.

컴퓨터가 루프를 돌도록 하는 방법은 for, while등이 있습니다. 이번에는 for 루프에 대해서 알아보도록 하겠습니다.

dictionary의 모든 데이터를 출력하기 위해서는 어떻게 해야 할까요?
dictionary에서 제공하는 기능인 keys()에 대해서 알아봅시다.

keys()통해서 dictionary의 key값을 리스트로 가져올 수 있다는 것을 알 수 있습니다. dictionary의 모든 키와 값은 아래와 같이 가져올 수 있습니다.

반복 해보기1

정답SHOW

1~10 값의 합을 구하기 위해서는 어떻게 해야 할까요?

반복 해보기2

정답SHOW

먼저 range의 동작에 대해서 알아봅시다

그렇다면 1~100 합을 구하려면 어떻게 해야 할까요?

함수 (function)

잠시 수학에서 배웠던 함수의 개념을 다시한번 떠올려 봅시다.
입력을 넣으면 출력이 나온다
$f(x) = y$
$f(a, b) = (x, y)$

프로그래밍에서의 함수는 어떤 개념일까요?
"명령을 내리면 정의한 작업을 한다"로 정의할 수 있습니다. 특히 반복되는 작업을 함수로 정의하여 사용합니다
Python에서는 기본 제공하는 함수를 사용할 수 있으며, 직접 구현하여 사용할 수도 있습니다.

Python에서 제공하는 리스트의 길이(원소의 갯수)를 구하는 함수입니다.

앞에서 구현했던 두 수의 크기를 비교하는 기능을 여러번 사용해야 하는 경우를 생각해 봅시다.

반복되는 작업을 함수로 만들어 구현해 봅시다.

함수는 1개 이상의 값을 결과로 돌려줄 수 있습니다.

함수 내에서 사용하는 변수는 함수 외부에 영향을 주지 않습니다. 함수 외부에 동일한 이름의 변수가 있고 이 변수를 함수 내부에서 변경하더라도 함수외부의 변수는 영향을 받지 않습니다

함수의 인자로 값을 넘기면 어떻게 될까요?

함수의 인자에 기본 값을 설정 할 수 있습니다. 함수 호출 시, 기본 값이 설정된 인자에 값이 없는 경우 기본 값을 사용하고 있으면 함수 호출시 설정된 값을 사용합니다

함수 해보기

정답SHOW

add(), subtract(), multiply(), divide()를 함수로 만들어 봅시다


1177 읽음
이전 Python 환경 만들기
다음 Python 기초 요약

저자

토론이 없습니다

Please log in to leave a comment

16.5.11618.20190612.allo
문제 보고 · 사용조건 · 개인정보보호
래블업 주식회사 · 대한민국 서울 테헤란로 145 · 대표: 신정규 · 사업자번호: 864-88-00080 · +82 70-8200-2587

거절 확인

닫기
좋아요 책갈피 토론

아래 주소를 복사하세요