PYTHON
MATHEMATICS
이해하기
Moon Yong Joon
1
1. 대수 기초
2.함수 기초
3. 선형대수 기초
4.관계 기초
목차
2
5. 그래프 기초
6. 삼각함수
7. 지수/로그 기초
8. 수열 기초
목차
3
9. 집합 기초
10. 미분/적분 기초
11. 확률과 통계 기초
목차
4
1.대수
기초
Moon Yong Joon
5
주요 기호
Moon Yong Joon
6
그리스 문자
Α/α(알파) Β/β(베타) Γ/γ(감마)
Δ/δ(델타) Ε/ε(엡실론) Ζ/ζ(제타)
Η/η(에타) Θ/θ(쎄타) Ι/ι(요타)
Κ/κ(카파) Λ/λ(람다) Μ/μ(뮤)
Ν/ν(뉴) Ξ/ξ(크시) Ο/ο(오미크론)
Π/π(피) Ρ/ρ(로우) Σ/σ(씨그마)
Τ/τ(타우) Υ/υ(윕실론) Φ/φ(휘)
Χ/χ(키 또는 카이) Ψ/ψ(프시)
Ω/ω(오메가)
7
집합기호
8
명제기호
9
수
Moon Yong Joon
10
수11
수
자연수, 정수, 유리수, 무리수, 실수로 확장되는
수의 관계
12
정수13
정수
정수(整數, integer)는 자연수(1, 2, 3, ...)와 이들
의 음수(−1, −2, −3, ...)와 0으로 이루어진 수
체계이다. 정수는 자연수와 마찬가지로 가산 무
한 집합이며, 덧셈, 뺄셈, 곱셈에 대하여 닫혀 있
어 환을 이룬다.
14
유리수15
유리수
유리수(有理數, rational number)는 두 정수의
분수 형태(단 분모는 반드시 0이 아니다)로 나타
낼 수 있는 실수를 말한다.
유리수는 (0으로 나누는 것을 제외한) 사칙연산
(덧셈, 뺄셈, 곱셈, 나눗셈)에 대해 닫혀있는 '최소
의' 집합이기도 하다
16
무리수17
무리수
무리수(無理數, irrational number)는 두 정수의
비의 형태로 나타낼 수 없는 실수를 말한다. 즉,
분수로 나타낼수없는 소수이다.
18
실수19
실수
실수 [實數, real number] 정수의 몫으로 정의되
는 유리수의 범위에서는 대소의 순서를 정할 수
있으며, 사칙연산을 자유로이 할 수 있다.
그러나 이 범위에서는 역시 불완전한 점이 많다.
이를테면, 단위의 길이를 가지는 정사각형의 대
각선의 길이(x=2의 근)는 유리수로 나타낼 수 없
다.
이와 같은 결함을 보완하기 위하여 유리수에 무
리수를 첨가하여 수의 범위를 실수까지 확장한
것이다.
20
복소수21
복소수
복소수(複素數, complex number)는 다음 꼴로
나타낼 수 있는 수 이다.
a+bi
이 때 a, b는 실수이고 i는 허수단위로 i2=-1을
만족한다. 실수 a를 그 복소수의 실수부, 실수 b
를 복소수의 허수부라고 부른다.
모든 실수는 복소수에 포함된다. 왜냐하면 모든
실수는 허수부가 0인 복소수로 표시할 수 있기 때
문이다.
22
복소수 연산
복소수(複素數, complex number)는 다음 꼴로
23
나눗셈
항등원,역수24
항등원
항등원(恒等元)은 집합의 어떤 원소와 연산을 취
해도, 자기 자신이 되는 원소를 말한다. 쉽게 말해
서, 1개의 양을 전혀 달라 보이는 다른 양과 같게
만드는 수학적 관계를 말한다고 생각하면 된다.
25
반수: 덧셈
반수(反數)는 그 수를 더했을 때 0이 되는 수를 말
한다. 예를 들면 7의 경우 -7에 7을 더하면 0이
되므로 7의 반수는 -7이다.
다르게 말하면 어떤 양수 n의 반수는 그와 절댓값
이 같은 음수라고 할 수 있으며 그 역도 성립한다.
정수, 유리수, 실수, 복소수는 음수가 있기 때문에
모두 반수가 있다.
26
역수 : 곱셈
어떤 수의 역수(逆數,reciprocal) 또는 곱셈 역원
(-逆元, 영어: multiplicative inverse)은 그 수와
곱해서 1, 즉 곱셈 항등원이 되는 수를 말한다.
x의 역수는 1/x 또는 x -1로 표기한다.
곱해서 1이 되는 두 수를 서로 역수
27
절대값28
절댓값은 거리의 개념이므로 반드시 0또는 양수이어야하며, 만약
실수 a가 음수라면, a에 (-1)을 곱해 양수화
절대값 absolute value
어떤 실수 a를 수직선에 대응시켰을 때, 수직선의
원점에서 실수 a까지의 거리를 의미한다. 이것을
기호로 |a|로 표시.
29
비율30
비율
비(比, ratio)는 어떤 수가 다른 한 수의 몇 배인지
를 나타내는 관계이다. 이 배수를 비율(比率,
ratio)이라고 한다.
원주율
원의 지름에 대한 원주의 비율.
백분율
수를 100과의 비로 나타내는 것.
31
PYTHON
SYMPY
수, 심벌, 전개식,
해 구하기
처리
Moon Yong Joon
32
Symbolic mathematics33
sympy 모듈 이란
SymPy는 symbolic mathematics을위한
python 라이브러리입니다.
SymPy는 가능한 한 간단하게 코드를 유지하는
것은 이해하기 쉽게 확장 할 수있는 a full-
featured computer algebra system (CAS)처리
34
sympy 구조
SymPy는 symbolic mathematics를 처리하기 위
해 다양한 객체들로 구성해서 평가해 수학처럼
문제를 푸는 체계
35
Sympy는 정의한 것은 pi도
하나의 인스턴스 객체 이므
로 이 값을 처리를 위해서는
평가(evalf)를 해야 함
sympy 객체
Sympy객체를 변수에 할당해서 사용하지만 별도
의 객체로 역할 함
36
Symbol로 정의할 때
들어간 문자열의 실
제 name이고 할당
된 참조변수는
symbol 객체가 할당
된 변수라 이름이 달
라도 됨
Symbol 객체 이해37
sympy 구조
SymPy는 symbolic mathematics를 처리하기 위
해 다양한 객체들로 구성되며 이를 평가해 수학
처럼 문제를 푸는 체계
38
Sympy는 정의한 것은 pi도
하나의 인스턴스 객체 이므
로 이 값을 처리를 위해서는
평가(evalf)를 해야 함
수 타입 체계39
정수 : sympy
정수(整數, integer)는 자연수(1, 2, 3, ...)와 이들
의 음수(−1, −2, −3, ...)와 0으로 이루어진 수
체계이다.
40
유리수 : sympy
유리수(有理數, rational number)를 분자(p)와
분모(q)로 관리
41
실수 1 : sympy
실수 [實數, real number]
42
실수 2 : sympy
Sympify로 sympy 숫자 타입을 확인
43
복소수 : sympy
Sympify로 sympy 숫자 타입을 확인
44
무한대 처리45
무한대/pi를 심벌 처리
sympy는 oo로 무한대, pi로 파이 상수를 관리
46
Sympy symbol 정의47
symbol 처리
Sympy 는 명확히 수학적인 심벌을 표시
x = Symbol(’x’)는 심벌을 하나 정의
a, b, c = symbols(’a, b, c’)는 심벌을 여러 개
정의
48
symbol 처리 : 변수에 타입주기
symbols 정의시 이 변수에 들어갈 데이터 타입
을 부여할 수 있음
49
symbol 처리 : 함수명
symbols 정의시 cls 파라미터에 Function을 부
여하면 함수 변수가 됨
50
전개식 처리51
expand 메소드 : 전개식 처리
표현식도 별도의 타입을 가지므로 expand메소
드를 사용하면 표현식이 전개됨
52
expand 함수 : 전개식 처리
표현식도 별도의 타입을 가지므로 expand메소
드를 사용하면 표현식이 전개됨
53
곱셈 전개시 동일
항에 대한 곱셈부
분도 전개가 필요
하며 force=True
처리
해 구하기54
Solve 함수 : 해 구하기
표현식을 solve 함수에 넣으면 해를 구해 줌
55
PYTHON
NUMBER
DATA TYPE
Moon Yong Joon
56
Numeric Type57
숫자타입
숫자에 대한 객체를 관리하는 데이터 타입
Numberic Types
int
float
long(2.x)
complex
숫자타입도 하나의 객체이므로 1 이 생성
되면 동일한 context 내에서는 동일한 객체
id를 가지고 사용
58
숫자타입 – 기본 연산자 및 함수
숫자 타입에 기본으로 처리 되는 함수, operator
Operation Result Notes
x + y sum of x and y
x - y difference of x and y
x * y product of x and y
x / y quotient of x and y
x // y (floored) quotient of x and y
x % y remainder of x / y
-x x negated
+x x unchanged
abs(x) absolute value or magnitude of x
int(x) x converted to integer
long(x) x converted to long integer
float(x) x converted to floating point
complex(re,im)
a complex number with real part re, imaginary part im. im defaults to
zero.
c.conjugate() conjugate of the complex number c
divmod(x, y) the pair (x // y, x % y)
pow(x, y) x to the power y
x ** y x to the power y
59
Numeric Type(int)60
숫자타입 - int
int 타입 내의 operator 처리 내장 메소드 및 속
성들
61
숫자타입 – int 예시
int 내부 속성에 대한 처리
real : int는 숫자를 관리하고
bit_length() : 이진수로 변환시
bit 길이
denominator : 분모
numerator : 분자
62
숫자타입 – long 타입
python3버전에서는 통합되어 관리
Notes Python 2 Python 3
①
x = 1000000000000L x = 1000000000000
②
x = 0xFFFFFFFFFFFFL x = 0xFFFFFFFFFFFF
③
long(x) int(x)
④
type(x) is long type(x) is int
⑤
isinstance(x, long) isinstance(x, int)
63
Numeric Type(float)64
숫자타입 - float
float 타입 내의 operator 처리 내장 메소드 및
속성들
65
숫자타입 – float 예시
float 내부 속성에 대한 처리
• real : float는 숫자를 관리하고
• hex() : 16진수로 변환
• fromhex() : hex() 결과의 문자
열을 float로 전환
• is_integer() : 실수 중 소수점 이
하 값이 0일 경우 true
• as_integer_ratio() : 현재 값을
denominator : 분모,
numerator : 분자로 표시
66
Numeric Type(complex)67
숫자타입 - complex
float 타입 내의 operator 처리 내장 메소드 및
속성들
68
숫자타입 – complex 예시
complex 내부 속성에 대한 처리
• real : float는 숫자를 관리하고
• imag: 허수부문
• conjugate () : 켤레복소수 구
하기
69
분수계산하기70
숫자타입 – fractions 표시
fractions 모듈을 이용해서 분수를 계산. Float
타입과 계산시에는 float 타입으로 전환 됨
71
숫자타입 – fractions 연산
fractions 모듈을 이용해서 분수를 계산. Float
타입과 계산시에는 float 타입으로 전환 됨
72
거듭제곱
/제곱근
Moon Yong Joon
73
거듭제곱74
거듭제곱
거듭제곱은 이항 연산으로, 하나의 수를 여러 번
곱하는 연산을 의미한다. 기호로는 an 으로 표기
하며, 이때 a를 밑, n을 지수라고 한다.
75
거듭제곱의 지수 표현
거듭제곱은 지수가 음수이면 기존 거듭제곱이 역
수가 되가 분수인 경우는 제곱근 표현이 됨
지수가 음수인 경우 지수가 분수인 경우
76
거듭제곱의 성질
거듭제곱은 반복적인 곱하기와 나누기 처리를 하
므로 아래의 성질을 준수
77
제곱근78
제곱근
x의 제곱근(제곱根)은 제곱하여 x가 되는 실수를
가리키며, 특히 이 가운데 양의 제곱근을 sqrt(x)
라고 표기하고 "제곱근 x"(루트 x)라고 읽는다.
79
제곱근의 지수 표현
제곱근 x를 수치적인 표현으로는 지수 표현을 분
수식으로 나타내면 됨 x1/2로 표현
80
일반적으로 실수 x에 대하여 값이 부호는 +/-를
가짐
제곱근의 부호 표현
제곱근의 부호
81
제곱근 x에 대한 수의 성질
제곱근의 값 표현
제곱근의 표현 제곱근의 값
자연수 x에 대해 결과값
은 자연수이거나 무리수이
다
음이 아닌 실수 x가 제곱
근 내부의 제곱은 x가 됨
82
제곱근 두수 x,y에 대한 곱셈과 나눗셈 처리 방식
제곱근의 성질
제곱근의 곱셈 제곱근의 나눗셈
83
PYTHON
거듭제곱
/제곱근
Moon Yong Joon
84
거듭제곱85
밑 a, 지수 b에 대한 거듭 제곱을 구하는 것은
math.pow 함수와 연사자 **를 사용
거듭제곱
86
제곱근87
밑a이고 지수가 b일 경우 math.sqrt함수는
root2에 대한 값만 처리 하므로 **/pow에서 분
수를 이용해서 제곱근을 구함
제곱근
88
기수법
Moon Yong Joon
89
기수법90
기수법
기수법(記數法, numeral system)은 수를 시각적으
로 나타내는 방법으로, 기수법을 통해서 나타나는 각
각의 숫자는 다른 수들과 구별되는 표기 방식을 가진
다.
91
진법92
이진법
이진법(二進法, binary)은 두 개의 숫자만을 이용
하는 기수법이다. 관습적으로 0과 1의 기호를 쓰
며 이들로 이루어진 수를 이진수라고 한다.
93
팔진법
팔진법 (octal number system , 八進法 ) 은 8을
밑으로 하는 기수법이다. 0부터 7까지의 숫자를
사용한다. 이진법 표기의 3자리와 팔진법 한 자리
가 일대일 대응
94
십진법
십진법(十進法, 열올림법)은 10을 기수로 한 기수
법이다. 자리수로 0, 1, 2, 3, 4, 5, 6, 7, 8, 9를
쓴다.
95
십육진법
십육진법(十六進法, hexadecimal)은 16을 밑으로
하는 기수법이다. 보통 0부터 9까지의 수와 A에서 F
까지의 로마 문자를 사용하고, 이때 대소문자는 구별
하지 않는다. 이진법 표기의 4자리와 십육진법 한 자
리가 일대일 대응하며, 2진수가 많이 쓰이는 컴퓨터
에서 2진수를 대신해 많이 쓰이고 있다.
96
PYTHON
기수법
Moon Yong Joon
97
진법표현98
진법 표현
bin, oct, hex를 이용해서 이진법, 팔진법, 16진
법을 표현함
99
Bit 연산100
비트연산자 : and, or, xor
Operator Description
&
Binary AND
서로 같은 비트가 있는 경우만 표시
|
Binary OR 서로 같은 경우 또는 다른 경우도 전
부 표시
^
Binary XOR
다른 경우만 표시
101
비트연산자 : ~, <<, >>
Operator Description
~
Binary Ones Co
mplement 1의 보수 구하기
<<
Binary Left Shift
좌축으로 비트 이동.
>>
Binary Right Shi
ft 우축으로 비트이동.
102
대수의 법칙
Moon Yong Joon
103
연산 우선순위104
연산 우선순위
연산자에 대한 우선순위는 PEMDAS로 처리
105
교환법칙106
수학에서, 집합 S 에 이항연산 * 이 정의되어 있을 때, S의 임의의
두 원소 a, b 에 대해
a * b = b * a가 성립하면, 이 연산은 교환법칙(交換法則,
commutative law)을 만족한다고 한다
교환법칙을 만족하는 연산의 예를 들어보면 다음과 같다.
 유리수, 실수, 복소수에서 덧셈과 곱셈.
 행렬, 벡터의 덧셈
 집합의 교집합, 합집합 연산
교환법칙
수학에서 순서와 상관없이 다른 항을 바꿔 계산
해도 동일한 값이 나오는 법칙
107
교환법칙 : 덧셈과 곱셈
수학에서 순서와 상관없이 다른 항을 바꿔 계산
해도 동일한 값이 나오는 법칙
108
결합법칙109
수학에서 결합법칙(結合 法則, associated law)은 한 식에서 연산
이 두 번 이상 연속될 때, 앞쪽의 연산을 먼저 계산한 값과 뒤쪽의
연산을 먼저 계산한 결과가 항상 같을 경우 그 연산은 결합법칙을
만족한다고 한다.
결합법칙을 만족하는 연산의 예를 들어보면 다음과 같다.
 실수와 복소수, 사원수의 덧셈과 곱셈은 결합법칙이 성립한
다.
 최대공약수와 최소공배수 함수는 결합법칙을 만족한다.
 행렬 곱셈은 결합법칙을 만족한다.
결합법칙
연산이 두 번 이상 연속될 때 연산을 묶어서 처리
110
결합법칙
연산이 두 번 이상 연속될 때 연산을 묶어서 처리
111
분배법칙112
집합 S와 S에 대해 닫혀있는 이항 연산 *가 정의되어 있을 때, S의
임의의 원소 a, b, c에 대해 a * (b + c) = (a * b) + (a * c)가 성립
하면 좌분배법칙이, (b + c) * a = (b * a) + (c * a)가 성립하면 우
분배법칙이 성립한다고 하며 양쪽모두 성립할 경우 집합 S에서 연
산 *에 대해 분배법칙이 성립한다고 한다.
분배법칙을 만족하는 연산의 예를 들어보면 다음과 같다.
 임의의 자연수, 정수, 유리수, 실수, 복소수의 곱셈 ×은 덧
셈 +에 대해 분배법칙이 성립한다.
 합집합 연산 ∪은 교집합 연산 ∩에 대해 분배법칙이 성립하
고, 교집합 연산 ∩은 합집합 연산 ∪에 대해 분배법칙이 성
립한다. 또한, 교집합 연산은 대칭자 연산에 대해 분배법칙
이 성립한다.
분배법칙
수학에서 이항연산 *와 묶음이 있을 경우 분배하
면 동일한 처리값이 나오는 법칙
113
분배법칙
수학에서 순서와 상관없이 다른 항을 바꿔 계산
해도 동일한 값이 나오는 법칙
114
서로소115
공약수/최대공약수
공약수, 최대공약수, 서로소 용어 정의
공약수 두 개 또는 그 이상의 자연수가 있을 때 그 자연수들의 공통인 약수.
최대공약수 공약수들 중에서 가장 큰 수.12의 약수={1,2,3,6,12}
16의 약수={1,2,4,8,16}
18의 약수={1,2,3,6,9,18} 에서
12와 16의 공약수 → 1,2,4 → 최대공약수는 4
12, 16, 18의 공약수 → 1,2 → 최대공약수는 2
서로소 공약수가 1 하나 뿐인 두 자연수 사이의 관계
(예) 8의 약수={1,2,4,8}, 9의 약수={1,3,9}에서 8과 9의 공약수는 1 한 개
뿐이므로 8과 9는 서로소
116
서로소
최대공약수가 1인, 둘 이상의 양의 정수들은 서로
소(relatively prime)이라고 불린다.
두 정수가 1 이외에 양의 공약수를 가지지 않으면
서로소이다.
117
대입118
대입
대입(代入, substitution) 또는 변수변환(變數變
換, change of variables)은 수식의 특정 변수를
일정한 값 또는 다른 수식으로 치환하는 행위
119
분모의 유리화120
분모의 유리화
유리화(Rationalization)는 무리수가 있는 분수에
서, 분모 부분을 유리수로 바꾸는 과정을 말한다
121
분모와 분자에
분모를 곱하면
무리수가 유리
수로 변경됨
PYTHON
연산자와
OPERATOR 모듈의
대수의 법칙
Moon Yong Joon
122
연산자 구조123
연산자와 special method
python 문법의 연산자는 각 type class 내부에 대
응하믄 special method가 존재
연산자
Special
Method
각 타입별로 연산자는
special method와 매칭
124
연산자 우선순위
순위 구분 Operator Description
0 그룹 ( ) Parentheses (grouping)
1 함수 f(args...) Function call
2 참조 x[index:index] Slicing
3 참조 x[index] Subscription
4 참조 x.attribute Attribute reference
5 산술 ** Exponentiation(제곱)
6 비트 ~x Bitwise not
7 부호 +x, -x Positive, negative
8 산술 *, /, % Multiplication, division, remainder
9 산술 +, - Addition, subtraction
10 비트 <<, >> Bitwise shifts
11 비트 & Bitwise AND
12 비트 ^ Bitwise XOR
13 비트 | Bitwise OR
14 비트 in, not in, is, is not, <, <=, >, >=,<>, !=, == Comparisons, membership, identity
15 논리 not x Boolean NOT
16 논리 and Boolean AND
17 논리 or Boolean OR
18 함수 lambda Lambda expression
125
부호변환126
부호연산
숫자 객체에 대한 부호 변환하는 연산
Operation 연산자 Function Method
Negation (Arithmetic) - a neg(a)
x.__neg__()
Positive + a pos(a) x.__pos__()
127
부호변환 예시
숫자 타입의 부호를 변환
128
산술 연산129
산술연산 : 정방향
숫자 객체들에 대한 수학적인 산술연산
Operation 연산자 Function Method
addition x + y add(a, b) x.__add__(y)
subtraction x - y sub(a, b) x.__sub__(y)
multiplication x * y mul(a, b) x.__mul__(y)
division x / y div(a, b) x.__div__(y)
division x / y truediv(a, b) x.__truediv__(y)
floor division x // y floordiv(a, b) x.__floordiv__(y)
modulo (remainder) x % y mod(a, b) x.__mod__(y)
floor division & modulo divmod(x, y) N/A x.__divmod__(y)
raise to power x ** y pow(a, b) x.__pow__(y)
130
산술연산 예시: operator 모듈
Operator 모듈을 import해서 사용
131
산술연산 예시: int method
Int class 내의 special method 이용해 계산
132
산술연산 예시: 연산자
python 문법의 연산자 이용
133
산술연산 : 역방향
수학적인 산출연산에 대한 역방향 메소드 제공 계산
결과는 정방향과 동일
Operation 연산자 Function Method
addition x + y add(a, b) y.__radd__(x)
subtraction x - y sub(a, b) y.__rsub__(x)
multiplication x * y mul(a, b) y.__rmul__(x)
division x / y div(a, b) y.__rdiv__(x)
division x / y truediv(a, b) y.__rtruediv__(x)
floor division x // y floordiv(a, b) y.__rfloordiv__(x)
modulo (remainder) x % y mod(a, b) y.__rmod__(x)
floor division & modulo divmod(x, y) N/A y.__rdivmod__(x)
raise to power x ** y pow(a, b) y.__rpow__(x)
134
산술연산 역방향 예시
사칙연산이 정방향이나 역방향이나 계산은 동일
135
비트 연산136
비트연산 설명
비트연산에 대해서는 실제 숫자의 비트를 가지고 연
산
Operation 연산자 설명
left bit-shift x << y y만큼 왼쪽으로 bit 이동 : 산식은 (x * (2** y) )
right bit-shift x >> y y만큼 오른쪽으로 bit 이동 : 산식은 (x // (2** y) )
bitwise and x & y x와 y이 동일한 비트값만(1 또는 0) 남고 동일하지 않으면 0 처리
bitwise xor x ^ y x와 y에서 서로 대응되지 않는 값만 남김
bitwise or x | y x와 y에서 1이 있는 값은 1로 처리 0이 동일한 경우 0 처리
Bitwise Inversion ~ a a의 비트를 반대로 표시
137
비트연산
python 연산자,operator 모듈내의 함수와 int 메소
드간의 관계
Operation 연산자 Function Method
left bit-shift x << y lshift(a, b) x.__lshift__(y)
right bit-shift x >> y rshift(a, b) x.__rshift__(y)
bitwise and x & y and_(a, b) x.__and__(y)
bitwise xor x ^ y xor(a, b) x.__xor__(y)
bitwise or x | y or_(a, b) x.__or__(y)
Bitwise Inversion ~ a invert(a) x.__invert__()
138
비트 연산 예시
비트연산
139
augmented operator140
augmented operator
python에서는 할당연산자와 일반연산자를 축약해
서 사용
X += Y X = X+ Y
141
사칙연산
사칙연산
Operation 연산자 Function Method
addition x += y iadd(a, b) x.__iadd__(y)
subtraction x -= y isub(a, b) x.__isub__(y)
multiplication x *= y imul(a, b) x.__imul__(y)
division x /= y idiv(a, b) x.__idiv__(y)
division x /= y itruediv(a, b) x.__itruediv__(y)
floor division x //= y ifloordiv(a, b) x.__ifloordiv__(y)
modulo (remainder) x %= y imod(a, b) x.__imod__(y)
raise to power x **= y ipow(a, b) x.__ipow__(y)
142
증가비트연산
비트연산과 할당연산을 같이 사용
Operation 연산자 Function Method
left bit-shift x <<= y ilshift(a, b) x.__ilshift__(y)
right bit-shift x >>= y irshift(a, b) x.__irshift__(y)
bitwise and x &= y iand_(a, b) x.__iand__(y)
bitwise xor x ^= y ixor(a, b) x.__ixor__(y)
bitwise or x |= y ior_(a, b) x.__ior__(y)
143
논리연산144
논리연산
논리연산은 boolean 값을 비교해서 처리
Operation Syntax Function Method
and Logical AND a and b NA NA
or Logical OR a or b NA NA
Negation (Logical) not a not_(a) NA
145
논리연산 예시
논리연산
146
방정식/
부등식
Moon Yong Joon
147
방정식148
방정식
방정식(方程式, equation)은 식에 있는 특정한 문
자의 값에 따라 참/거짓이 결정되는 등식이다.
이때, 방정식을 참이 되게 하는 특정 문자의 값을
해 또는 근이라 한다.
149
항등식
방정식 X의 해는 2,3
상수항
상수항은 다항식이나 방정식에서 변수 또는 미지
수를 포함하지 않은 항이다.
예를 들면, 다항식 a0xn+a1xn-1+…+an-1x+an
에서는 변수 x를 포함하지 않은 항 an을, 또 방정
식 a0xn+a1xn-1+…+an-1x+an=0에서는 미지
수 x를 포함하지 않은 항 an을 상수항이라 한다.
150
다항방정식
일차방정식, 이차방정식, 삼차방정식, 고차방정
식 등과 같이 미지수에 대한 다항식으로만 이루
어진 방정식을 다항 방정식이라고 한다
151
다항 방정식 정의 다항 방정식 해
일차방정식152
일차방정식
일차방정식(Linear equation) 또는 선형 방정식
은 최고차항의 차수가 1인 방정식을 뜻한다.
153
a0x1+a1x0
a0 = a
a1 = b
n=1 일 경우
일차방정식 풀이
일차방정식에서 상수를 좌변으로 이항한 후에 변
수앞에 있는 계수로 양변을 나누면 x 값을 정함.
154
이차방정식155
이차방정식
이차 방정식(二次方程式, quadratic equation)이
란, 최고차항의 차수가 2인 다항 방정식을 뜻한다
156
a0x2+a1x1+a2x0
a0 = a
a1 = b
a2 = c
n=2 일 경우
이차방정식의 해
이차 방정식은 아래처럼 상수항을 이용해서 근의
공식으로 해를 구할 수 있음
157
근의공식
부등식158
부등식
부등식(不等式, inequality)은 두 수에 대한 크기
비교를 나타내는 식이다. 부등식은 두 수 및 그 사
이의 부등호(不等號, inequality sign)로 구성된
다.
159
추이적관계
임의의 세 원소 a, b, c에 대하여 정의된 이항관
계이 추이적 관계(推移的關係,transitive relation)
라 함
160
PYTHON
SYMPY
방정식
Moon Yong Joon
161
수식값 부여162
수식평가 : +/-
수식을 만들고 subs, evalf, replace로 평가하
기
163
수식평가 : *, /
수식을 만들고 subs, evalf, replace로 평가하
기
164
방정식 풀기165
방정식 풀기
2차 방정식을 전개는 expand 함수로 처리하고
해는 solve 함수로 구함
166
PYTHON
관계연산
Moon Yong Joon
167
관계연산168
관계연산
python 내의 객체 간의 순서와 동등 관계를 처리하
는 연산자
Operation 연산자 Function Method
Ordering a < b lt(a, b)
x.__lt__(y)
Ordering a <= b le(a, b)
x.__le__(y)
Equality a == b eq(a, b)
x.__eq__(y)
Difference a != b ne(a, b)
x.__ne__(y)
Ordering a >= b ge(a, b)
x.__ge__(y)
Ordering a > b gt(a, b)
x.__gt__(y)
169
인수분해/전개
Moon Yong Joon
170
곱셈공식171
곱셈 공식(-公式, multiplication)
다항식의 곱셈을 할 때 빠르고 편리하게 계산할
수 있도록 한 공식이다. 곱셈 공식의 양변을 바꾸
면 인수분해 공식이 된다.
172
피타고라스 정리
피타고라스 정리를 이용해서 하나의 변수를 제곱
근 곱셈공식으로 전환해서 처리.
173
제곱근 연산
제곱근 연산도 곱셈 공식을 이용해서 결과를 처
리
174
인수분해175
인수분해
인수 분해(因數分解, factorization)는 곱이 정의
된 집합내의 어떤 원소를 다른 원소들의 곱으로
표현하는 것을 가리킨다
176
인수분해 공식
인수 분해 주요 공식
177
인수분해 예시
인수 분해 주요 공식을 이용한 처리 예시
178
이항정리179
이항정리
이항정리(二項定理, binomial theorem)는 이항
다항식 x+y의 거듭제곱 (x+y)n에 대해서, 전개
한 각 항 xkyn-k의 계수 값을 구하는 정리
180
이항정리 : 전개
다항식 (a+b)3의 전개식에서 각 항의 계수를 조
합의 수를 이용하여 나타내는 방법
(a+b)3=(a+b)(a+b)(a+b)
=aaa+aab+aba+abb+baa+bab+bba+bbb
=a3+3a2b+3ab2+b3
=a3+3C1a2b+3C2ab2+b3
3C1 = 3P1/1! = 3!/2!/1! = 3
3C2 = 3P2/2! = 3!/1!/2! = 3
181
이항정리 : 파스칼 방식
다항식 (a+b)3의 전개식에서 각 항의 계수를 조
합의 수를 이용하여 나타내는 방법
182
PYTHON
SYMPY
인수분해/전개
Moon Yong Joon
183
공통요소 제거184
cancel 함수 : 공통요소 제거
분모와 분자의 공통요소를 제거하는 함수는
cancel로 처리
185
인수분해186
factor 함수
인수분해는 factor 함수를 사용하고 전개는
expand 함수를 사용하고 해는 solve함수를 사용
함
187
factor 함수 : modulus
인수분해를 위한 파라미터를 modulus로 사용하
면 인수분해 불가함 방정식을 조건에 따라 인수
분해 함
188
factor 함수 :가우시안정수
가우스 정수(Gauß整數, Gaussian integer)는 실
수부와 허수부가 모두 정수인 수이다.
(a+bi)(a-bi)=a2+b2 로 표현이 가능한 수
189
= (0+i)(0 –i)
= -i*I
= -(i)**2
= 1
X**2+1은 인수분
해가 안되어서 가
우시안 수로 인수
분해
factor 함수 : extension
인수분해를 위한 값을 배정해서 처리
190
2.함수
기초
Moon Yong Joon
191
함수
Moon Yong Joon
192
함수193
사상
사상(寫像, 영어: morphism)은 수학적 구조를 보
존하는 함수의 개념을 추상화한 것이다.
사상이라는 용어는 영어 map에 대응하기도 하는
데, 이 경우 맥락에 따라 함수(function)와 사상
(morphism) 모두의 의미로 사용될 수 있다.
194
함수란?
함수(函數, function) f:X→Y란 집합X와 집합 Y의
원소 사이에 주어진 다음 성질을 만족하는 대응
으로 정의된다.
195
정의역
어떤 함수의 공역(共域, codomain) 또는 공변역
(共變域)은 이 함수의 값들이 속하는 집합이다.
196
공역/치역
어떤 함수의 정의역(定義域, domain)은 그 함수의
값이 정의된 집합이다.
함수의 치역(値域, range)이라고 하는 것은 함수의
모든 "출력"값의 집합
197
함수의 종류198
단사 함수란?
단사(injective) 또는 일대일(one-to-one)이라
하고 일대일인 함수를 단사함수(injection) 또는
일대일 함수(one-to-one function)이라 한다
199
전사 함수란?
공역의 모든 원소에게 정의역의 적어도 하나의 원소
를 대응시킨다면(즉, 치역이 공역과 같다면) 전사
(surjective) 또는 X에서 Y 로(onto)의 함수라 한다.
전사인 함수를 전사함수(surjection)이라 한다.
200
전단사 함수란?
f:X→Y가 전사이고 단사일 때 f를 전단사(bijective)
라 한다. 전단사인 함수를 전단사함수(bijection) 또
는 일대일 대응(one-to-one correspondence)라 한
다. one-to-one & onto라고도 많이 사용한다.
201
초월함수
초월함수(超越函數)란 대수함수와 대조적으로,
계수만으로 이루어진 다항식을 만족시키지 않는
함수이다.
초월함수란 유한한 가감승제의 대수 연산으로 표
현할 수 없기 때문에 대수적인 것을 초월하는 함
수이다.
초월함수의 예로 로그함수, 삼각함수 등이 있다.
202
역함수203
역함수
f:X→Y 함수에 대한 대응관계가 반대로 되는 것을
역함수 즉 f -1: Y → X.
204
항등함수
항등함수와 함수를 합성하면 결과는 함수와 같다.
함수와 역함수를 합성하면 항등함수가 나옴
205
=
함수의 합성206
함수합성 function composition
함수의 합성(函數의合成, function composition)은
한 함수의 공역이 다른 함수의 정의역과 일치하는 경
우 두 함수를 이어 하나의 함수로 만드는 연산이다.
이렇게 얻어진 함수를 합성 함수(合成函數
composite function)라고 한다.
207
교환법칙
함수의 교환법칙은 반드시 성립하지 않는다.
208
결합법칙
함수합성의 결합법칙은 성립한다.
209
PYTHON
MAPPING
DATA TYPE
210
mapping Type211
Mapping 타입-dictionary
Key/Value로 원소를 관리하는 데이터 타입이며
요소들은 변경가능함
참조 container
Name 1 값
Name 2
contain
er
참조
참조
:
:
Dictionary Type
212
Mapping 타입 - dict
dict 내의 속성과 메소드들
213
Mapping 타입 – 사용자 클래스 정
의
사용자 클래스 내부에서 dict type 사용하기
214
Hash 처리215
key 값은 hash
mapping 타입은 기본 hash 처리가 되는 경우
만 키값을 사용
tuple 내의 리스트 등
mutable이 들어오면
hash를 만들 수 없어 에
러 처리됨
216
dict 생성217
Map 타입 - 생성
직접 만들거나 dict 생성자를 통해 생성. 항상
key/value 쌍을 구성해야 함
218
dict 접근219
Mapping - Accessing Elements
Key/Value로 원소를 관리하므로 Key를 index
로 원소를 검색
220
Mapping - Updating Elements
새로운 key에 할당하면 추가하고 기존 key로 변
경하면 기존 값을 변경함
새로운 key에 할당: 기
존에 없으므로 추가
기존 key에 할당: 기존
에 있는 값을 변경
221
Mapping - Delete Elements
원소 하나만 삭제, 모든 원소들을 삭제, dict
instance 삭제
기존 원소 하나 삭제
Dict 삭제
모든 원소 삭제
222
dict 내장함수 처리223
Mapping– dict 지원 내장함수
Dictionary 타입에 원소 하나만 삭제, 원소들을
삭제, dictionary instance 삭제
Function Description
cmp(dict1, dict2) Compares elements of both dict.
len(dict) Gives the total length of the dictionary. This would be equal
to the number of items in the dictionary.
str(dict) Produces a printable string representation of a dictionary
type(dict) Returns the type of the passed variable. If passed variable is
dictionary, then it would return a dictionary type.
dict(mapping) Converts a map into list.
224
Mapping -dict class 구조 확인
dict 내의 스페셜 메소드를 제외한 내장 속성 확
인
225
dict 메소드 처리226
Mapping -dictionary 메소드
Method Description
dict.clear() Removes all elements of dictionary dict
dict.copy() Returns a shallow copy of dictionary dict
dict.fromkeys() Create a new dictionary with keys from seq and values set to value.
dict.get(key,
default=None)
For key key, returns value or default if key not in dictionary
dict.has_key(key) Returns true if key in dictionary dict, false otherwise
dict.items() Returns a list of dict's (key, value) tuple pairs
dict.keys() Returns list of dictionary dict's keys
dict.setdefault(key,
default=None)
Similar to get(), but will set dict[key]=default if key is not already in dict
dict.update(dict2) Adds dictionary dict2's key-values pairs to dict
dict.values() Returns list of dictionary dict's values
dict.iteritems() Iterable한 items를 만들기
227
dict.get() 사용
dict 내부의 키가 없을 경우 KeyError가 발생하
므로 get()메소드로 읽어서 처리하면 오류발생을
막을 수 있음
Key 조회시
default 값을 설
정할 수 있음
228
dict.setdefault()사용
dict에 내의 원소를 추가하거나 갱신할 때
default 값을 지정해서 처리 가능
229
dict.get/setdefault()사용
dict에 내의 원소를 추가하거나 갱신하고 이를 []
연산자나 get 메소드로 호출해서 처리
230
dict.update() 사용
dict에 dict을 연결할때 사용하면 키값이 겹칠
경우는 인자로 전달 받은 값으로 갱신됨
231
iteritems/iterkeys/itervalues
dict 타입을 iterable로 전환해서 처리하는 메소
드
232
버전 변경233
버전변경
keys,items 등이 메소드 결과가 리스트 타입에
서 객체타입으로 변경
Notes Python 2 Python 3
①
a_dictionary.keys() list(a_dictionary.keys())
②
a_dictionary.items() list(a_dictionary.items())
③
a_dictionary.iterkeys() iter(a_dictionary.keys())
④
[i for i in a_dictionary.iterkeys()] [i for i in a_dictionary.keys()]
⑤
min(a_dictionary.keys()) no change
234
메소드 결과 타입 변경
keys, values, items 메소드 리턴타입이 list에
서 dict 타입으로 변경
235
dict.key/values/items()
python 버전 변경에서 list 타입이 dict_keys,
values,items 타입으로 변경되어 동일한 결과를
인지하려면 list()로 변환 필요
버전에 따
른 변경
236
dict.key/values/items: for문
python 3. 대에서도 for문에서는 실제 값만 처
리됨
237
dict.key: set 연산
python 3. 대에서도 set 연산을 이용해서 처리
가능
238
viewitems/keys/values 처리239
dict.viewitems() 사용
dict 타입 내의 키와 값을 view 타입으로 처리하
는 객체 버전3에서 통합 됨
240
viewitems/viewkeys()
dict 타입에서 viewitems/viewkeys 메소드 처
리함 결과로 set 연산을 처리할 수 있음(3버전에
서는 keys()/items() 동일함)
241
dict comprehension242
Dict Comprehension
사전 정의시 값을 정하지 않고 호출 시 사전 내의
값들이 처리되도록 구성
A = {표현식 for (k,v) in sequence if 논리식}
243
Dict Comprehension : 단순
dict 타입에 대한 comprehension 생성
A = {표현식 for i in sequence if 논리식}
244
dict Comprehension : 다중
dict 내의 다중 for문을 이용해서 처리
A = {표현식 for i in sequence for j in sequence
if 논리식}
245
PYTHON
SYMPY
함수 그래프
Moon Yong Joon
246
plotting247
1차 함수 그래프
1차 함수를 만들고 plot 함수로 그래프 그리기
248
2차 함수 그래프
2차 함수를 만들고 plot 함수로 그래프 그리기
249
여러 개 그래프 그리기250
두개 함수 그래프
1차,2차 함수를 만들고 plot 함수로 그래프 그
리기
251
그래프 선 색상 변경하기
plot 함수 결과에 line_color 변수에 색상을 할
당
252
x축 범위253
1차 함수 그래프 : x축 범위
1차 함수를 만들고 plot 함수에서 (x,-5,5)를 제
공해서 x축 범위를 제한
254
Plot 함수에서 그래프 통합 축 제한
1차함수와 2차함수의 x축이 제한을 통합해서
제한하려면 튜플로 하나만 표시
255
Plot 함수에서 각 그래프별 축 제한
1차함수와 2차함수의 x축이 제한이 다르게 표
시하려면 각 그래프별로 x축에 대한 제한을 별도
로 넣어줘야 함
256
y축 범위257
1차 함수 그래프 : y축 범위
1차 함수를 만들고 plot 함수에서 ylim=(y,-5,5)
를 제공해서 y축 범위를 제한
258
그래프 꾸미기259
그래프 설명자료:legend
그래프에 대한 설명자료 legend
260
1차 함수 그래프 꾸미기
그래프 내의 텍스트 정보(title, xlabel, ylabel)
를 제공해서 그래프 꾸미기
261
자동 show 차단하기262
자동 그래프 표시 제한
sympy는 plot함수만 작동해도 그래프가 그려진
다. show=False 파라미터를 제공해서 자동 그
리기를 제한
263
Show 메소드 실행하기264
show메소드 사용
sympy는 plot함수만 작동해도 그래프가 그려진
다. show=False 파라미터를 제공해서 자동 그
리기를 제한
265
Multi plot 사용266
다중 plot 사용하기 1
여러 plot 함수로 그래프를 그리면 각 plot별로
그래프가 그려짐
267
다중 plot 사용하기 : 2
여러 plot 함수로 그래프 그리기
268
하나의 plot에 여러 그래프 넣기
하나의 그래프에 산식을 여러 개 넣으면 하나의
plot에 그래프가 통합해서 그려짐
269
Multi plot 병합하기270
append로 plot 추가
append 메소드로 plot 처리를 하나로 합치기
271
extend로 plot 추가
extend 메소드로 plot 처리를 하나로 합치기
272
3.선형대수
기초
Moon Yong Joon
273
NUMPY
CLASS
Moon Yong Joon
274
ndarray와 matrix 구분275
ndarray와 matrix 구분
다차원 배열을 생성하지만 matrix는 MATLAB 기능
을 지원
구분 ndarray matrix
차원 다차원 가능 2 차원
* 연산자 요소간 곱 행렬곱
numpy.multiply() 요소간 곱 요소간 곱
numpy.dot() 행렬곱 행렬곱
276
배열과 vector 구분 : ndarray
Array와 vector 구분 생성
277
ndarray와 matrix 연산 비교
Matrix는 dot/* 처리가 동일, ndarry는 */multiply
가 동일
278
벡터
이해하기
Moon Yong Joon
279
벡터란280
스칼라/벡터/행렬
스칼라는 number, vector는 숫자들의 list(row or
column), matrix는 숫자들의 array( rows,
columns)
그리고 vector는 Matrix
281
배열과 vertor 구분
ndarray 는 벡터 1xN, Nx1, 그리고 N크기의 1차원
배열이 모두 각각 다르며, 벡터는 그 자체로 특정 좌
표를 나타내기도 하지만 방향을 나타냄
scalar 배열 vector
양, 정적 위치 양, 정적 위치 변위, 속도, 힘(방향성)
1차원 N 차원 N 차원
단순 값 행,열 구분 없음 행벡터, 열벡터
282
스칼라/벡터/행렬 예시
스칼라/벡터/행렬
283
벡터란
크기(magnitude)와 방향(direction)을 표시
벡터는 tail부터 head까지의 유향선분으로
표시
284
벡터 크기285
벡터 크기
벡터의 크기는 ||v|| = sqrt(v0^2 + v1^2 +
v2^2... + vn^2) 로 표현
벡터 b = (6,8) 의 크기
|b| = √( 62 + 82 ) = √( 36+64 ) =
√100 = 10
286
Vector 크기 계산
벡터의 크기(Magnitude)는 원소들의 제곱을 더
하고 이에 대한 제곱근의 값
벡터의 크기는 x축의 변위와 y축의 변위를 이용
하여 피타고라스 정리
287
단위벡터288
단위벡터
단위벡터(unit vector)는 크기가 1인 벡터
크기가 1인 벡터
표기법은 문자에 모자(hat)을
사용해서 표시
모든 벡터는 단위벡터에 대해
sclae 배수 만큼의 크기를 가진 벡
터
289
단위벡터 정규화
해당 벡터를 0 ~ 1의 값으로 정규화
290
산술연산291
벡터: +
The vector (8,13) and the vector (26,7) add up to
the vector (34,20)
Example: add the vectors a = (8,13) and b = (26,7)
c = a + b
c = (8,13) + (26,7) = (8+26,13+7) = (34,20)
a
b
a
b
c
292
Vector 연산: +
두 벡터 평행 이동해 평행사변형을 만든 후 가운데
벡터가 실제 덧셈한 벡터를 표시
e
d
f
e
d
293
벡터 : -
벡터의 방향성을 반대로 이동한 실제 벡터를 처리
Example: subtract k = (4,5) from v =
(12,2)
a = v + −k
a = (12,2) + −(4,5) = (12,2) + (−4,−5)
= (12−4,2−5) = (8,−3)
294
Vector 연산: -
두 벡터 반대 방향으로 평행 이동해 평행사변형을
만든 후 가운데 벡터가 실제 덧셈한 벡터를 표시
e
d
g
-e
-e
295
벡터: 스칼라곱
벡터의 각 원소에 스칼라값만큼 곱하여 표시
벡터 m = [7,3]
A = 3m= [21,9]
296
Vector 연산: 스칼라곱
스칼라 배수 만큼 벡터 내의 원소값이 커짐
d
3d
297
내적과 외적 비교298
내적 vs 외적
구분 내적 외적
명칭
Inner product, dot product, scalar
product
Outer product, vector product, cross
product
표기 .(Dot) X(cross)
대상 벡터 n 차원 3 차원
공식
a1 b1 + a2 b2 + …. + an bn
(a2 b3 – a3 b2, a3 b1 – a1 b3, a1 b2 – a2
b1)
|a||b| cos 각도 |a||b| sin각도 n
결과 scalar vector
299
벡터
내적과 외적
이해하기
Moon Yong Joon
300
스칼라곱301
내적 산식
내적(Inner Product)산식은 두벡터의 크기에 cos각
을 곱한 결과 또는 두벡터간의 원소들이 곱의 합산
과 같은 결과
a · b = |a| × |b| × cos(θ)
Where:
|a| : vector a 크기
|b| : vector b 크기
θ : a and b 사이의 각
a · b = ax × bx + ay × by
302
내적 수학적 예시 : 2 차원
두벡터에 내적 연산에 대한 수학적 처리 예시
a · b = |a| × |b| × cos(θ)
a · b = 10 × 13 × cos(59.5°)
a · b = 10 × 13 × 0.5075...
a · b = 65.98... = 66 (rounded)
a · b = ax × bx + ay × by
a · b = -6 × 5 + 8 × 12
a · b = -30 + 96
a · b = 66
303
3차원 내적 예시 1
Dot 연산을 통한 계산
a · b = ax × bx + ay × by + az × bz
a · b = 9 × 4 + 2 × 8 + 7 × 10
a · b = 36 + 16 + 70
a · b = 122
304
3차원 내적 예시 2
두벡터 사이의 각 구하기
a벡터의 크기
|a| = √(42 + 82 + 102)
= √(16 + 64 + 100)
= √180
b벡터의 크기
|b| = √(92 + 22 + 72)
= √(81 + 4 + 49)
= √134
내적 구하기
a · b = 9*4+ 2*8+ 7*10 = 36+16+70 = 122
각 구하기
a · b = |a| × |b| × cos(θ) 산식에 대입
122 = √180 × √134 × cos(θ)
cos(θ) = 122 / (√180 × √134)
cos(θ) = 0.7855...
θ = cos-1(0.7855...) = 38.2...°
305
내적(dot) 예시
두벡터에 대한 내적(dot) 연산은 같은 위치의 원
소를 곱해서 합산함
두벡터의 곱셈은 단순히 원소를 곱해서 벡터를
유지
306
vdot: vector
벡터(2차원)일 경우도 스칼라(dot)로 처리
307
Vector product(외적)308
외적
벡터 a 와 b 의 외적은 a × b 로 정의된다.
외적의 결과로 나온 벡터 c 는 벡터 a 와 b 의 수직
인 벡터로 오른손 법칙의 방향
Vector product
Cross product
309
외적 산식 : 2차원
벡터의 원소간의 cross 적을 처리
v = [a1,a2]
u = [b1,b2]
a1 a2
b1 b2
a1*b2 – a2*b1 Example: The cross product of a = (2,3) and b = (5,6)
c = a1b2 − a2b1 = 2×6− 3×5 = −3
Answer: a × b = -3
310
외적 산식 : 3차원
벡터의 원소간의 cross 적을 처리
v = [a1,a2,a3]
u = [b1,b2,b3]
a2 a3 a1 a2
b2 b3 b1 b2
x 축 : a2*b3 – a3*b2
y 축 : a3*b1 – a1*b2
z 축 : a1*b2 – a2*b1
Example: The cross product of a = (2,3,4) and b = (5,6,7)
cx = aybz − azby = 3×7 − 4×6 = −3
cy = azbx − axbz = 4×5 − 2×7 = 6
cz = axby − aybx = 2×6 − 3×5 = −3
Answer: a × b = (−3,6,−3)
311
외적 산식예시
두벡터에 대한 외적(cross) 연산은 다른 위치의
원소를 곱해서 뺄셈
2차원 벡터는 스칼라 값으로 나옴 3차원 벡터이
상 표시 됨
312
Inner/outer 함수 이해하기313
inner 계산 방식
A = [[a1,b1] B = [[a2,b2]]
numpy.inner(A,B)
array([[a1*a2 + b1*b2]])
[[1*4+0*1]]
1 0 4 1
1 0
4 1
4=.
314
Inner 예시
벡터의 내부 곱한 것을 더해서 값을 표현
315
dot/inner: 예시
벡터(2차원)일 경우 2차원으로 표시
316
outer
A = [[a1,b1]] B = [[a2,b2]]
numpy.outer(A,B)
array([[a1*a2 , a1*b2][ b1*a2, b1*b2]])
 [[1*4,1*1] [0*4+0*1]]
1 0 4 1 1
0
4 1
4 1
0 0
=
317
outer 예시
벡터의 내부 곱한 것을 더해서 값을 표현
첫번째 벡터의 전치와 두번째 벡터와의 Dot 연
산과 같은 결과
318
PYTHON
MATRIX CLASS로
VECTOR 이해하기
Moon Yong Joon
319
벡터 산술연산320
Vector 연산: +
두 벡터 평행 이동해 평행사변형을 만든 후 가운데
벡터가 실제 덧셈한 벡터를 표시
e
d
f
e
d
321
Vector 연산: -
두 벡터 반대 방향으로 평행 이동해 평행사변형을
만든 후 가운데 벡터가 실제 덧셈한 벡터를 표시
e
d
g
-e
-e
322
Vector 연산: 스칼라곱
벡터를 스칼라 곱 만큼 커짐
d
3d
323
벡터 크기324
Vector 크기 계산
벡터의 크기(Magnitude)는 원소들의 제곱을 더
하고 이에 대한 제곱근의 값
벡터의 크기는 x축의 변위와 y축의 변위를 이용
하여 피타고라스 정리
325
vector 내적326
Vector 연산: 내적(dot)
두벡터에 대한 내적(dot) 연산은 같은 위치의 원
소를 곱해서 합산함
327
vector 외적328
Vector 연산: 외적(cross)
두벡터에 대한 외적(cross) 연산은 다른 위치의
원소를 곱해서 뺄셈
2차원 벡터는 array로 나옴 3차원이상으
matrix로 표시 됨
329
행렬
이해하기
Moon Yong Joon
330
행렬이란331
행렬
매트릭스라고도 하는데 행렬의 가로 줄을 행, 세
로 줄을 열로 표시함
332
Diagonal matrix333
대각행렬
정사각행렬 A=(aij)(i, j=1, 2, 3,…, n)의 원소
aij가 aij=0(i≠j)을 만족시키는 행렬
A의 주대각선 위에 있는 원소(대각선원소) aij(i=j)
외의 원소 aij(i≠j)가 모두 0인 행렬
334
Identity matrix335
항등행렬
모든 행렬과 닷 연산시 자기 자신이 나오게 하는
단위행렬
import numpy as np
a = np.array([[1,0],[0,1]])
b = np.array([[4,1],[3,2]])
print(np.dot(b,a))
print(np.dot(a,b))
[[4 1]
[3 2]]
[[4 1]
[3 2]]
336
Triangular matrix337
삼각행렬
상삼각 행렬(Upper triangular matrix)
과 하삼각 행렬(lower triangular matrix
)을 총칭하여 일컫는 말.
Upper triangular matrix lower triangular matrix
338
행렬 산술연산339
행렬 산술연산
두 행렬의 원소별로 산술연산(+/-/*) 처리
+
-
*
/
=
+
-
*
/
+
-
*
/
+
-
*
/
+
-
*
/
+
-
*
/
+
-
*
/
1 2 3
4 5 6
1 2 3
4 5 6
+ =
1+1 2+2 3+3
4+4 5+5 6+6
=
2 4 6
8 10 12
340
행렬 산술연산 예시
행렬에 대한 산술연식은 각 원소별로 +/-/* 처리
341
행렬의 전치(transpose)342
행렬 전치
전치: 행렬의 행과 열을 서로 바꾸는 것.
수학책에서는 위첨자 T로 행렬 A의 전치를 나타
낸다.













121110
987
654
321
A











12963
11852
10741
T
A
343
행렬 전치 예시
python은 기본 속성에서 T 변수를 제공하고
numpy 모듈에서 transpose 함수 제공
344
dot 연산345
dot vs inner 차이점(2차원이상)
Dot와 inner 함수는 계산시 축 기준이 차이가 있어
실제 계산된 값이 다름
dot inner
행과 열로 계산 행과 행으로 계산
행벡터와 열벡터 간의 원소를 곱한후 덧셈 행벡터와 행벡터간의 원소를 곱한후에 덧셈
N*M 과 M*N 즉, 첫번째 열과 두번째 행이 동일 N*M과 N*M에 마지만 차원이 같은 경우
N*M . M*N 은 결과가 N*N N*M과 N*M 은 결과가 N*N
346
dot 처리 기준 1*p, p*1
두 행렬 A와 B의 행렬곱셈은 행렬 A의 각 행과 행
렬 B의 각 열끼리 곱해서 표시
AB 𝑎1 𝑏1 𝑎2 𝑏2 … 𝑎 𝑝 𝑏 𝑝 paaa 21A















pb
b
b

2
1
B
1행*p열
P행1열
1행1열
347
dot 처리 기준
두 행렬 A와 B의 행렬곱셈은 행렬 A의 각 행과 행
렬 B의 각 열끼리 곱해서 표시









































pnpjpp
inijii
nj
nj
mpmjmm
ipijii
pj
pj
bbbb
bbbb
bbbb
bbbb
aaaa
aaaa
aaaa
aaaa












21
21
222221
111211
21
21
222221
111211
AB
pm np
nm


2 3
3 3
348
dot : 2차원
A = [[a1,b1],[c1,d1]] B = [[a2,b2],[c2,d2]]
numpy.dot(A,B)
array([[a1*a2 + b1*c2, a1*b2 + b1*d2], [c1*a2 +
d1*c2, c1*b2 + d1*d2])
 [[1*4+ 0*2, 1*1+0*2],[0*4+1*2, 0*1+1*2]]
1 0
0 1
4 1
2 2
1 0
0 1
4 1
2 2
4 1
2 2
=.
349
dot 예시
Numpy.dot 메소드 처리
350
행렬식351
행렬식(det)
정방행렬에 하나의 수를 대응시킴으로써,
- 연립방정식의 해를 구하거나,
- 연립방정식 해의 존재성을 살피려고 할 때 쓰여짐
352
행렬식(det) : 2차원
행렬식 구하기
3 1
2 2
det = 3*2 – 1*2
= 4
353
행렬식(det) : 3차원
행렬식을 계산시 앞에 두 열을 뒤에 복사 후 계산
3 1 3 3 1
2 2 3 2 2
1 1 1 1 1
= 3*2*1 – 3*2*1 + 1*3*1 – 3*3*1 + 3*2*1 – 1*2*1
= 6 – 6 + 3 -9 + 6 -2
= 15 – 17
= -2
354
행렬식(det) : 3차원
n
355
minor determinant356
소행렬식 2차원
i번째 행,j번째 열을 제거한 부분행렬의 행렬식 : Mij
2 1
1 2
M11 2
M12
M21
-1
-1
2
1
1
부호 +
부호 –
부호 –
부호 +M22 22
357
소행렬식 3차원
i번째 행,j번째 열을 제거한 부분행렬의 행렬식 : Mij
3 1 3
2 2 3
1 1 1
M11 2*1 -3*1 -1
M12
M13
2*1 -3*1 -1
2*1 -2*1 0
2 3
1 1
2 3
1 1
2 2
1 1
= 3M11+(-1)* 1M12 + 3M13
= -3+1+0 = -2
부호 +
부호 –
부호 +
358
소행렬식 예시
소행렬식을 구해서 행렬식 값 비교
359
역행렬360
여인수(cofactor)
소행렬식을 이용한 값을 여인수를 표시
3 1 3
2 2 3
1 1 1
소행렬식 부호 결과값
m11
2 3
1 1
2-3 -1 + -1
m12
2 3
1 1
2-3 -1 - 1
m13
2 2
1 1
2-2 0 + 0
m21
1 3
1 1
1-3 -2 - 2
m22
3 3
1 1
3-3 0 + 0
m23
3 1
1 1
3-1 2 - -2
m31
1 3
2 3
3-6 -3 + -3
m32
3 3
2 3
9-6 3 - -3
m33
3 1
2 2
6-2 4 + 4
361
수반행렬(adj) 과 여인수행렬
소행렬식으로 계산된 원소 즉 여인수로 구성된 행렬
의 전치행렬을 수반행렬이라 함
-1 2 -3
1 0 -3
0 -2 4
-1 1 0
2 0 -2
-3 -3 4
T
여인수행렬
의 전치
수반행렬
362
역행렬(inv) – 2차원
역행렬은 수반행렬에 행렬식으로 나눗값이 됨
[[ 0.66666667 -0.33333333]
[-0.33333333 0.66666667]]
1/3 *
2 -1
-1 2
역행렬
2 1
1 2
-1
A−1​​=​1/det(A) * ​​CT
363
역행렬(inv) – 3차원
역행렬은 수반행렬에 행렬식으로 나눗값이 됨
[[ 0.5 -1. 1.5]
[-0.5 0. 1.5]
[ 0. 1. -2. ]]
- 0.5 *
-1 2 -3
1 0 -3
0 -2 4
역행렬3 1 3
2 2 3
1 1 1
-1
A−1​​=​1/det(A) * ​​CT
364
역행렬(inv) 예시
역행렬 계산
365
Dot 연산366
Dot 처리 기준
두 행렬 A와 B의 행렬곱셈은 행렬 A의 각 행과 행
렬 B의 각 행끼리 곱한후 덧셈을 하여 표시









































pnpjpp
inijii
nj
nj
mpmjmm
ipijii
pj
pj
bbbb
bbbb
bbbb
bbbb
aaaa
aaaa
aaaa
aaaa












21
21
222221
111211
21
21
222221
111211
AB
n*m n*m
n*n
두행렬의 마지막 차원이
값으면 처리가 가능하고
결과는 마지막 차원을
제외해서 구성
367
dot 행렬
n*m 행렬 일 경우 2차원으로 표시
368
dot 예시 : 2차원
a(2,2) 행렬과 b(2,2)행렬의 마지막 차수가 같으
므로 계산결과는 n*m, m*n = n*n
369
cross product370
cross 계산 방식
A = [[a1,b1],[c1,d1]] B = [[a2,b2],[c2,d2]]
numpy.cross(A,B) = A.T * B
array([[a1*b2 - c1*a2 , b1*d2 – d1*c2])
[[1*1- 0*4,0*2-1*2]]
1 0
0 1
4 2
1 2
1 -2=
371
Cross 행렬
n*m 행렬 일 경우 2차원으로 표시
372
Inner 연산373
inner 계산 방식
A = [[a1,b1],[c1,d1]] B = [[a2,b2],[c2,d2]]
numpy.inner(A,B)
array([[a1*a2 + b1*b2, a1*c2 + b1*d2], [c1*a2 +
d1*b2, c1*c2 + d1*d2])
[[1*4+0*1,1*2+0*2],[0*4+1*1, 0*2+1*2]]
1 0
0 1
4 1
2 2
1 0
0 1
4 1
2 2
4 2
1 2
=.
374
Inner 예시 : 2차원
a(2,2) 행렬과 b(2,2)행렬의 마지막 차수가 같으
므로 계산결과는 out.shape = a.shape[:-1] +
b.shape[:-1]
375
Inner 예시 : 3차원
a(2,3,2) 행렬과 b(2,2)행렬의 마지막 차수가 같
으므로 계산결과는 out.shape = a.shape[:-1] +
b.shape[:-1]
376
outer product377
outer
두개의 벡터를 가지고 벡터 크기를 행과 열로 만드
는 함수
1차원이 이상일 경우 1차원으로 만든 후에 행렬로
만듬
1 0 4 1 1
0
4 1
4 1
0 0
=
2 2 2*2
378
outer: 1
Out는 두개의 벡터에 대한 행렬로 구성
out[i, j] = a[i] * b[j]
379
outer: 2
첫번째 벡터가 행이되고 두번째 벡터가 열이 되
어 5*5행렬을 만듬
380
outer: 3
벡터의 값이 문자일 경우 문자 배수만큼 처리
381
tensordot382
tensordot
Tensordot 함수에 axes를 0으로 줄 경우
tensor product을 연산
383
tensordot
Tensordot 함수에 axes를 0으로 줄 경우
tensor product을 연산
=
1 0
0 1
4 1
2 2
1 0
0 1
4 1
2 2
4 1
2 2
4 1
2 2
4 1
2 2
=
4 2
1 2
0 0
0 0
0 0
0 0
4 2
1 2
2,2 2,2 2,2,2,2
384
tensordot: 예시 1
2차원 행렬 2개가 만나 4차원 행렬 구성
385
tensordot: 예시 2
axes = 0 tensor product, axes = 1 tensor
dot product, axes = 2 tenser double
contraction 즉 벡터연산
386
대각행렬387
Trace : 3차원 행렬
3차원(2,2,2) 대각행렬의 합은 첫번째 차원의
1과 두번째의 마지막을 합산해서 출력
0
2
1
3
4
6
5
7
0 1
388
trace
대각행렬의 합을 출력
389
PYTHON
MATRIX CLASS로
행렬 이해하기
Moon Yong Joon
390
행렬 이해하기391
행렬
n개의 실수의 순서쌍에 성분별로 덧셈과 실수상수
곱을 주면[2] 이는 "nn차원" 벡터공간이라 할 수 있
고(, 벡터공간에서 벡터공간으로 가는 함수 중 덧셈
과 상수배를 보존하는 함수를 선형사상을 행렬이라
함
392
행렬 생성
Numpy matrix 를 이용해서 행렬 생성
393
행렬 연산하기394
행렬 : 내적 dot(곱셈)
N*M 과 M* N인 행렬에 대한 dot 연산 처리 결과는
M*M으로 나옴
( xij )( yij )=(∑kxikykj​​)
a1 a2
a3 a4
b1 b2
b3 b4
a1*b1+a1*b3 a2*b2+a2*b4
a3*b1+a3*b3 a4*b2+a4*b4
=
.
395
행렬 : dot
행렬에 대한 dot 연산 처리
396
행렬 : 외적cross
행렬에 대한 cross는 동등한 행렬일 경우 연산 처리
397
행렬 : +/-
N*M 과 N*M인 행렬에 대한 +/- 연산 처리 결과는
N*M으로 나옴
a1 a2
a3 a4
b1 b2
b3 b4
a1 +/- b1 a2 +/- b2
a3+/- b3 a4 +/- b4
=
+
/
-
398
행렬 : +/-
행렬에 대한 +/- 연산 처리
399
행렬 : 상수 배
상수(k) 와 N*M 행렬에 대한 곱은 상수배만큼 증가
함
a1 a2
a3 a4
k* a1 k * a2
k* a3 k* a4
=
k
400
행렬 : 상수 배
행렬에 대한 k 상수만큼 원소별로 곱하는 연산 처리
401
행렬 : 전치(transpose)
N*M 행렬을 M*N을 변환하는 처리
a1 a2
a3 a4
a1 a3
a2 a4
=
T
402
행렬 : 전치(transpose)
N*M 행렬을 M*N을 변환하는 방식은 T변수,
transpose 메소드가 있음
403
matmul
Matrix 타입일 경우 곱셈은 dot 연산과 동일한
결과를 생성함
404
Matmul: 차원계산
N*m, M*n 행렬에 따라 계산이 되지만 1차원인
경우는 행렬 계산을 처리
405
matrix_power
matrix_power는 정방행렬에 대해 dot 연산을
제곱승만큼 계산하는 것
406
matrix_power: 예시
반복적인 dot 연산을 처리
407
PYTHON
NUMPY LINALG
함수 이해하기
Moon Yong Joon
408
Matrix and vector products409
주요 함수
선형대수에 대한 함수들
함수 설명
dot(a, b[, out]) n차원 행렬 n*m m*l에 대한 production(결과는 n*l)
vdot(a, b) Vector에 대한 prodution
inner(a, b) N 차원 행렬에 대한 Inner product (행렬이 동일해야 함).
outer(a, b[, out]) 2개 벡터에 대해 계산 후 행렬로 표시.
matmul(a, b[, out]) 두 행렬에 대한 Matrix product (dot과 동일한 결과)
tensordot(a, b[, axes]) Compute tensor dot product along specified axes for arrays >= 1-D.
linalg.matrix_power(M, n) Raise a square matrix to the (integer) power n.
cross(a, b, axisa=-1, axisb=-1, axisc=-1, axis=None) 행렬에 대한 외적을 구함
einsum(subscripts, *operands[, out, dtype, ...]) Evaluates the Einstein summation convention on the operands.
kron(a, b) Kronecker product of two arrays.
410
Decompositions411
주요 함수
선형대수에 대한 함수들
함수 설명
linalg.cholesky(a) Cholesky decomposition.
linalg.qr(a[, mode]) Compute the qr factorization of a matrix.
linalg.svd(a[, full_matrices, compute_uv]) Singular Value Decomposition.
412
Matrix eigenvalues413
주요 함수
선형대수에 대한 함수들
함수 설명
linalg.eig(a) Compute the eigenvalues and right eigenvectors of a square array.
linalg.eigh(a[, UPLO]) Return the eigenvalues and eigenvectors of a Hermitian or symmetric matrix.
linalg.eigvals(a) Compute the eigenvalues of a general matrix.
linalg.eigvalsh(a[, UPLO]) Compute the eigenvalues of a Hermitian or real symmetric matrix.
linalg.eig(a) Compute the eigenvalues and right eigenvectors of a square array.
414
Norms and other numbers415
주요 함수
선형대수에 대한 함수들
함수 설명
linalg.norm(x[, ord, axis, keepdims]) Matrix or vector norm.
linalg.cond(x[, p]) Compute the condition number of a matrix.
linalg.det(a) Compute the determinant of an array.
linalg.matrix_rank(M[, tol])
Return matrix rank of array using SVD method Rank of the array is the number of SVD sing
ular values of the array that are greater than tol.
linalg.slogdet(a) Compute the sign and (natural) logarithm of the determinant of an array.
trace(a[, offset, axis1, axis2, dtype, out]) Return the sum along diagonals of the array.
416
Solving equations and
inverting matrices
417
주요 함수
선형대수에 대한 함수들
함수 설명
linalg.solve(a, b) Solve a linear matrix equation, or system of linear scalar equations.
linalg.tensorsolve(a, b[, axes]) Solve the tensor equation a x = b for x.
linalg.lstsq(a, b[, rcond]) Return the least-squares solution to a linear matrix equation.
linalg.inv(a) Compute the (multiplicative) inverse of a matrix.
linalg.pinv(a[, rcond]) Compute the (Moore-Penrose) pseudo-inverse of a matrix.
linalg.tensorinv(a[, ind]) Compute the ‘inverse’ of an N-dimensional array.
418
4.관계
기초
Moon Yong Joon
419
관계 기초
Moon Yong Joon
420
관계421
관계
집합론에서 관계(關係)는 "자연수 a가 b보다 작
다"와 같이 두 개의 대상으로 이루어진 튜플 사이
에 정의된 이항관계를 일반화한 것으로, 주어진
n-튜플에 대해 진리값을 부여한다.
앞의 경우와 같이 두 대상 사이에 주어지는 관계
는 이항관계라 하고, "점 a, b, c가 한 직선상에 놓
여있다"와 같이 세 대상 사이에 정의된 관계는 삼
항관계라 한다.
422
관계 정의
a 는 b 에 대해 R 의 관계가 있음은 두 집합 A, B 에
대하여 A 에서 B 로의 이항관계(binary relation)가
AxB의 부분집합일 때 a∈A 이고 b∈B 인 (a, b)∈R ,
a Rb 로 나타내기도 함
(a, b)R 일 경우 또는 로 나타내기도 함
정의역(domain)
 관계 R 의 순서쌍에서 모든 첫 번째 원소의 집합: dom(R)
치역(range)
 모든 두 번째 원소의 집합: ran(R)
423
관계표현424
관계 표현 : 화살도표
화살도표(arrow diagram) 는 두 집합 A, B 가 있을 때 집
합 A 의 원소 a 와 집합 B 의 원소 b 사이에 관계가 성립
하는 경우 그 관계를 화살표로 그려서 나타내는 방법
425
관계 표현 : 좌표도표
좌표도표(coordinate diagram)는두 집합 A, B 가 있
을 때 집합 A 의 원소 a 를 x 축 위의 점으로 표시하
고, 집합 B 의 원소 b 를 y 축 위의 점으로 표시하여
두 점이 좌표상에서 만나는 점을 나타내는 방법
426
관계 표현 : 관계행렬
관계행렬(relation matrix)은 두 집합 A, B 에 대
한 관계를 행렬로 표현한 방법. 행렬 안의 모든 원
소들이 0 또는 1인 행렬을 부울행렬(boolean
matrix)이라고 함
427
관계 표현 : 방향그래프
방향그래프(directed graph)는 집합 A의 관계에 대한 방향
그래프를 그리고자 할 때 먼저 A의 원소들을 나타내는 정점
(vertex)을 그리고, 원소 (a, b)가 관계에 속하면 a에서 b로
화살표 모양의 에지(edge)를 그림
428
관계의 종류429
관계 종류: 1
1) 반사적 관계: 관계 R을 구성하는 집합 A에 대
해서 a ∈ A에 대해 (a,a) ∈ R이라면 관계 R은 반
사적 관계가 된다.
예) A = {a, b, c}
R은 (a,a), (b,b), (c,c)의 원소를 모두 포함해야
지 반사적 관계가 성립된다.
2) 비반사적 관계: R을 집합 X에서의 어떤 이항
관계라고 하자. 만일 모든 x ∈ X에 대해 (x,x) !∈
R이면 R은 비반사적이라고 한다.
430
관계 종류: 2
3) 대칭적 관계: 관계 R을 구성하는 집합 A에 대
해서 a, b ∈ A에 대해 (a,b) ∈ R이고 (b,a) ∈ R
이라면 관계 R은 대칭적 관계가 된다.
예) A = {a, b, c}
R에 (a,b)의 원소를 포함하고 있다면 (b,a)의
원소를 가지고 있어야 대칭적 관계가 성립된다.
431
관계 종류: 3
4) 반대칭적 관계: 관계 R을 구성하는 집합 A에 대해서 a,
b ∈ A에 대해 (a,b) ∈ R, (b,a) ∈ R이고 a와 b가 같지 않
은 쌍이 한개이상 존재 하지 않을 경우
예) A = {a, b, c}
R1 = { (a,b), (b,a) } 반대칭 관계가 아니다.
R2 = { (a,b), (c,a) } 반대칭 관계이다.
5) 추이적 관계: 관계 R을 구성하는 집합 A에 대해서 a, b,
c ∈ A에 대해 (a,b) ∈ R 그리고 (b,c) ∈ R 일때 (a,c) ∈ R
이라면 관계 R은 추이적 관계가 된다.
예) A = {a, b, c}
R에 (a,b), (b,c)가 있다면 (a,c)가 R에 존재해야 추이적
관계가 된다.
432
관계 종류: 4
6) 동치 관계: 반사적, 대칭적, 추이적인 이항 관
계를 뜻한다. 즉, 어떤 집합 X과 관계 ~이 있을 때,
임의의 원소 a, b, c에 대해
반사관계: a ~ a
대칭관계: a ~ b => b ~ a
추이관계: a ~ b, b ~ c => a ~ c가 성립한다는
것을 의미한다.
433
PYTHON
RELATION/SEQUENCE
(TUPLE)
DATA TYPE
434
Sequence : Tuple Type435
Sequence - Tuple 기본 처리
tuple타입에 immutable 타입으로 내부 원소에 대해
갱신이 불가능하여 리스트처리보다 제한적
Slicing은 String 처럼 처리가능
Python Expression Results Description
T =(1,) (1,) 튜플의 원소가 하나인 경우 생성 꼭 한 개일 경우는
뒤에 꼼마(,)를 붙여야 함
T = (1,2,3,4) (1, 2, 3, 4) 튜플 생성
len((1, 2, 3)) 3 Length 함수로 길이 확인
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 튜플을 합치기 Concatenation
('Hi!‘) * 4 'Hi!Hi!Hi!Hi!' 튜플의 반복을 string으로 표시
3 in (1, 2, 3) True 튜플 내의 원소들이 Membership
for x in (1, 2, 3): print x, 1 2 3 튜플의 원소들을 반복자 활용 - Iteration
436
Sequence- Tuple 용 내장함수
내장함수 중에 tuple 타입을 처리
Function Description
cmp(tuple1, tuple2) Compares elements of both tuples.
len(tuple) Gives the total length of the tuple.
max(tuple) Returns item from the tuple with max value.
min(tuple) Returns item from the tuple with min value.
tuple(seq) Converts a list into a tuple.
str(tuple) Produces a printable string representation of a tuple
type(tuple) Returns the type of the passed variable. If passed variable is
tuple, then it would return a tuple type.
437
Tuple 속성처리
Tuple 내부 속성은 동일한 원소수(count), 특정
값에 대한 위치(index)를 처리만 함
438
동일 객체 처리439
Tuple : 동일한 객체 처리
Tuple 을 동일한 객체로 처리하려면 별명을 사용
하거나 변수에 할당된 tuple을 copy 처리해야 동
일한 객체를 리턴함
list 특성을 가지고
있어 리터럴도 튜플
초기화시 다른 객체
로 인식
440
Tuple 처리 이슈441
Tuple 내의 mutable 사용
내장 타입 tuple은 immutable 이지만 원소가
mutable일 경우 값이 변경 가능함. 단, 객체는 변
경되지 않음
442
5.그래프
기초
Moon Yong Joon
443
그래프 기초
Moon Yong Joon
444
그래프445
그래프(Graph)
점을 선으로 연결한 것이다. 그래프 G는 꼭짓점
(vertex or node)들의 집합 V와 변(edge or line)
들의 집합 E로 이루어졌다.
집합 V : 공집합이 아닌 정점(vertex)들의 집합
집합 E : 에지(edge)들의 집합
446
그래프(Graph) : 예시
집합 V, 집합 E의 그래프를 그리면 아래와 같다
447
인접(adjacent)
인접(adjacent)은 무방향 그래프에서 정점 a, b에
대하여 간선(a,b)가 있으면, 정점 a 는 정점
b에 인접(adjacent)하다고 한다
448
차수449
차수(Degree)
각 정점에 연결된 간선의 수로 정점 v의 차수를
deg(v)로 표시하고 loop가 발생시 카운트는 2로
함
450
전체 차수
그래프 G 의 정점의 수가 n 개, 에지의 수가 e 개
면 아래의 산식으로 계산
451
경로와 길이452
경로와 길이
경로(Path) : 정점과 에지의 연속으로 구성된 형
태
길이(length): 경로를 구성하는 에지의 개수
닫혀있다(closed) : 어떤 경로의 처음과 끝의 정
점이 같은 경우
순환(cycle): 닫혀있는 경로
453
무방향 그래프454
무향(무방향)그래프
방향이 없으면 무방향 그래프(undirected graph)
455
무방향 그래프 표기법
구성요소는 정점, 간선, 매핑으로 구성한다
456
무방향성
무향(무방향)그래프 표기 예시
주어진 그래프를 G 라고 하자. 그래프 G 는 무방향
그래프다.
457
그래프 표현
Moon Yong Joon
458
방향 그래프459
유향(방향)그래프
digraph/ directed graph (유향그래프)유향그
래프란 그것의 각 변이 방향을 갖고 있는 그래프
를 의미한다.
460
유향변(arc)
유향그래프란 V라는 유한 집합과 원소들이 V의 원
소들로 이루어진 순서쌍들인 집합 A로 이루어진 순
서쌍 (V,A)를 의미한다. V의 원소들을 꼭지점
(vertex)이라 부르고 A의 원소들을 유향변(arc)이
라고 부른다. 유향변 (a,b)이 주어졌을 때 a를 그 유
향변의 시작점(initial vertex), b를 종착점
(terminal vertex)이라고 부른다.
461
무방향 그래프 표기법
구성요소는 정점, 간선, 매핑으로 구성한다
462
방향성
유향(방향)그래프 표기 예시
주어진 그래프를 H 라고 하자. 그래프 H 는 방향
그래프므로 에지 순서에 유의해야 한다.
463
그래프의 완전성464
완전그래프
임의의 두 꼭짓점이 모두 단 하나의 변으로 연결된
그래프를 완전(complete) 그래프
465
완전그래프의 간선 수 계산
정점이 3개인 그래프는 간선의 최대 갯수가 3개,
정점이 4개인 그래프는 간선의 최대 개수는 6개이
다.
466
부분그래프
부분 그래프(subgraph 서브그래프)는 어떤 그래프
의 꼭짓점과 변 가운데 일부로 이루어진 그래프이
다.
467
G1, G2, G3 모두 G의 부분 그래프이다.
유도된 그래프
부분그래프가 주어질 경우 정점집합과 간선집합이
주어졌을 때 그 그래프 내에서 유도된 그래프
468
G1, G2, G3 모두 G의 부분 그래프이다.
G1 은 변 26을 포함하지 않으므로 유도 부분 그래프가 아니다.
반면, G2, G3 는 유도 부분 그래프이다.
G3 는 G2, 의 유도 부분 그래프이다.
그래프의 행렬표현469
인접행렬
인접 행렬(adjacency matrix)은 그래프 G = (V,E),
|V| = n(≥1)일 때 그래프를 이차원 행열에 다음과
같이 저장하는 방법이다.
adj_mat[i][j] =
“1” if (vi, vj)가 인접할 때(adjacent)
“0” 인접하지 않을 경우
470
인접행렬 예시 : 무방향 그래프
무방향 그래프는 대칭행렬로 표현됨
471
방향 그래프는 연결된 시작점에서 연결된 종착점만 표
시하는 행렬로 표현
472
인접행렬 예시 : 방향 그래프
6.삼각함수
기초
Moon Yong Joon
473
삼각함수 기초
Moon Yong Joon
474
각의 종류475
각의 종류
각은 두 선상의 사이를 말하며, 이 각에는 예각,
직각, 둔각 등이 종류가 있음
476
직각삼각형 기본477
직각 삼각형을 이용
삼각형이 존재할 경우 총 각이 합은 180도 이고
각 A의 값을 삼각비로 구할 수 있다
A
sin(각도) 의 값은 빗변분에
높이 즉 b/c
cos(각도) 의 값은 빗변분에
높이 즉 a/c
tan(각도) 의 값은 빗변분에
높이 즉 b/a
478
직각삼각형 예시479
삼각형을 이용 : 빗변 구하기
밑변과 높이를 알면 피타고라스 정리에 따라 빗
변을 구할 수 있다.
480
삼각형을 이용 : 높이와 밑변
하나의 각과 빗변을 알고 있을 경우 빗변*sin()으
로 높이, 빗변*cos()으로 밑변을 구하기
481
피타고라스 정리482
피타고라스 정리 이용하기
밑변의 제곱과 높이이 제곱은 빗변의 제곱과 동
일
A 대신 rcosø
B 대신 rsinø
r값을 1로 전환하면
483
피타고라스 정리
밑변 3, 높이 4 일 경우 빗변은 5가 됨
484
삼각함수
(원이용)
Moon Yong Joon
485
원을 이용한 삼각함수486
원을 이용한 삼각함수 정의
xy 좌표평면에서 반지름의 길이가 r인 원을 그리
고 임의의 점을 P일 경우 OP가 이루는 각에 대해
한가지 값을 결정
반지름이 1인 경우
487
원을 이용한 정의 예시
선분은 sqrt(3**2 + 4**2)=5가 나오고 이를 이
용해서 각 ø 에 대한 삼각함수 값을 하나로 산출
488
삼각함수 표489
삼각함수 표
x축은 반지름*코사인 각도, Y축은 반지름*사인
각도로 원위의 점의 좌표를 알 수 있음
490
RADIAN & DEGREE
Moon Yong Joon
491
degrees/radians 이해492
degrees와 radians 변환 기준
단위원을 이용하여 degrees와 radians 변환
Degrees와 Radians 변환 규칙
493
degree와 radian 변환494
degrees와 radians
2π는 360도, 1radian은 57.3도
495
degrees와 radians: 변환
90, pi/2를 변환해보면 아래와 같다
496
radians <-> degrees : numpy
np.deg2rad, np.rad2deg를 이용해서 radians
또는 degree로 전환
Π와 180도에 대한 값 전환
497
radians -> degrees : numpy
np.degrees를 이용해서 radians 값을 degree
로 전환
np.degrees(radian, 출력)
498
degrees-> radians : numpy
np.radians를 이용해서 degree 값을 radian로
전환
np.radians(radian, 출력)
499
기본 삼각함수
Moon Yong Joon
500
cosine501
cosine 그래프
수평선의 길이를 코사인 값을 표시.
502
cosine 그래프
수평선의 길이를 코사인 값을 표시.
503
cosine 그래프 : numpy
수평선의 길이를 코사인 값을 표시.
504
cosine 그래프
수평선의 길이를 코사인 값을 표시.
505
sine506
sine함수
sine 함수에 radians을 넣어 값을 계산
507
sine 그래프
수직선의 길이를 코사인 값을 표시.
508
sine 그래프 : numpy
수직선의 길이를 코사인 값을 표시.
509
sine 그래프
수평선의 길이를 사인 값을 표시.
510
tangent511
tan 함수
tangent 함수에 radians을 넣어 값을 계산
512
tangent 그래프
수직선의 길이를 tan 값을 표시.
513
tangent 그래프 : numpy
수직선의 길이를 tan 값을 표시.
514
tangent 그래프
수직선의 길이를 tan 값을 표시.
515
삼각함수
각의 변환
Moon Yong Joon
516
각의 변환517
각의 변화를 알아보기
각은 n*π/2 + θ 또는 90n + θ으로 변환해서
각의 위치에 따라 삼각함수를 변환
1. 나오는 각을 n*π/2 + θ 또는 90n + θ, 이때 n은
정수 이면 0< θ < π/2 , 0 < θ <90
2. n이 짝수이면 변하지 않지만 홀수이면
sin-> cos, cos-> sin, tan-> cot로 변환
3. 몇 사분면의 각이냐 에 따라 부호가(+,-)로 변환됨
1사분면 2사분면 3사분면 4사분면
sin + + - -
cos + - - +
tan + - + -
518
삼각함수 사분면 부호
삼각함수의 사분면 위치에 따른 결과 값에 대한
부호 표시
519
각의 변화 : 짝수
각은 n*π/2 + θ 또는 90n + θ에서 n이 짝수일
때는 부호만 변함
n=0, 동일함수, 4사분면 n=2, 동일 함수, 2사분면
sin(-x) = -sin(x) sin(π -x) = sin(x)
cos(-x) = cos(x) cos(π-x) = -cos(x)
tan(-x) = - tan(x) tan(π-x) = -tan(x)
520
각의 변화 : 짝수예시
각은 n*π/2 + θ 또는 90n + θ에서 n이 짝수일
때는 부호만 변함
521
각의 변화 : 홀수
각은 n*π/2 + θ 또는 90n + θ으로 n이 홀수일
경우 삼각함수가 변함
n=1, 다른 함수, 1사분면 n=3, 동일 함수, 3사분면
sin(π/2 -x) = cos(x) sin(3π/2 -x) = -cos(x)
cos(π/2-x) = sin(x) cos(3π/2-x) = -sin(x)
tan(π/2-x) = cot(x) tan(3π/2-x) = cot (x)
1
522
각의 변화 : 홀수 예시
각은 n*π/2 + θ 또는 90n + θ으로 n이 홀수일
경우 삼각함수가 변함
523
π/2 :예각524
삼각함수 변화 : π/2
각 A가 120도 일 경우는 π/2(90)+30의 값을
가지므로 sin일 경우 cos, cos일 경우는 –sin 으
로 바뀜
r
a
b A=120도
B=30도
525
삼각함수의 변형 : 90도 이내
직각 삼각형의 성질을 이용하면 직각을 빼면 나머지
각이 90도인 것을 감안하면, 각 B를 기준을 sin 함수
의 결과는 각 A를 기준으로 cos 함수 결과와 동일
A
B
cos(A) = sin(B), sin(B) = cos(A) , tan(B) = cot(A) 와 동일
각 A + 각 B = 90도
각 B로 삼각함수 처리
526
삼각함수의 변형 예시
π/2 – 예각에 대한 삼각함수 계산
527
삼각함수의 변형 : 180도 이내
180도 이내의 각으로 삼각함수를 계산할 경우
90도 + 나머지 각으로 삼각함수를 계산할 수 있
음
r
a
b A=120도
B=30도
sin(A) = cos(B) = b/r
cos(A) = - sin(B) = - a/r
tan(A) = - cot(B) = -b/a
528
삼각함수의 변형 예시
π/2 + 예각에 대한 삼각함수 계산
529
π 와 예각 연산530
Sin 주기 변화
sin 그래프의 주기적인 pi 와 2pi 배수 단위로
동일한 값을 처리 성질을 이용
531
cos 주기 변화
cos 그래프의 pi 와 2pi 배수 단위로 동일한 값
을 처리 성질을 이용
532
삼각함수 변화 : π - 예각
180도 이내의 각으로 삼각함수를 계산할 경우
각 B에 대해 계산하는 것과 동일
r
a
b
B=30도
sin(π-B) = sin(B) = b/r
cos(π-B) = - cos(B) = - a/r
tan(π-B) = - tan(B) = -b/a
533
삼각함수 변화 : π + 예각
각 A가 120도 일 경우는 π(180)+30의 값을 가
지므로 sin일 경우 sin, cos일 경우는 –cos 으로
바뀜
r
a
b
A=210도
B=30도
534
2π 와 예각 연산535
삼각함수 변화 : 2π -
각 A가 360도 일 경우는 2π(360)-30의 값을
가지므로 sin일 경우 -sin, cos일 경우는 –cos 으
로 바뀜
r
a
b
A=360도
B=30도
536
삼각함수 변화 : 2π +
삼각함수가 2 π 단위로 변경시는 항상 기존 예
각을 구하는 것도 동일한 값을 같는다.
r
a
bA=360도
B=30도
537
삼각함수
덧셈과 뺄셈공식
Moon Yong Joon
538
Sin 함수의 덧셈539
Sin 함수 덧셈
두개의 각을 sin으로 덧셈을 할 경우 sin함수별
로 덧셈과는 차이가 발생
r
a
b
t
s
sin(α+ β) = sin(α) cos(β) + cos(α) sin(β)
= a/r * b/s + b/r * t/s
sin(α) cos(β) = a/r * b/s
cos(α) sin(β) = b/r * t/s
sin(α) = a/r , sin(β) = t/s
540
Sin 함수 덧셈 예시
sin 함수 두개의 각을 더할 경우 아래의 공식으
로 계산
541
Sin 함수의 뺄셈542
Sin 함수 뺄셈 예시
sin 함수 두개의 각을 뺄 경우 아래의 공식으로
계산
Cos 90이 0값이 아니라도 아
주 작은 값이라 무시
543
cos 함수의 덧셈/뺄셈544
cos함수 덧셈 예시
cos 함수 두개의 각을 더할 경우 아래의 공식으
로 계산
545
cos함수 뺄셈 예시
cos 함수 두개의 각을 뺄 경우 아래의 공식으로
계산
546
역수
Moon Yong Joon
547
역수548
역수
어떤 수의 역수(逆數, 영어: reciprocal) 또는 곱셈 역원(-
逆元, 영어: multiplicative inverse)은 그 수와 곱해서 1,
즉 곱셈 항등원이 되는 수를 말한다. x의 역수는 1/x
또는 x -1로 표기한다. 곱해서 1이 되는 두 수를 서로 역
수
549
역수 구하기550
역수 구하기
Python에는 역수에 대한 함수가 없어 역수 공식
에 따라 계산
551
삼각함수*역수 = 1
삼각함수 * 역수 = 1인지 확인
552
역삼각함수
Moon Yong Joon
553
역함수 사용하기554
역함수
함수의 정의역과 치역을 바꾸서 함수를 만드는
것을 역함수라고 함
555
삼각함수의 역함수
삼각함수의 역함수가 역삼각함수
이름 표기법 정의 정의역 치역
아크사인 y = arcsin x 또는 y = sin-1 x x = sin y −1부터 +1 −π/2 ≤ y ≤ π/2
아크코사인 y = arccos x 또는 y = cos-1 x x = cos y −1부터 +1 0 ≤ y ≤ π
아크탄젠트 y = arctan x 또는 y = tan-1 x x = tan y 모든 실수 −π/2 < y < π/2
아크코탄젠트 y = arccot x 또는 y = cot-1 x x = cot y 모든 실수 0 < y < π
아크시컨트 y = arcsec x 또는 y = sec-1 x x = sec y
−∞부터 −1과 1부
터 ∞
0 ≤ y < π/2 or π/
2 < y ≤ π
아크코시컨트 y = arccsc x 또는 y = csc-1 x x = csc y
−∞부터 −1과 1부
터 ∞
−π/2 ≤ y < 0 or 0
< y ≤ π/2
556
arcsine557
arcsine
삼각함수의 역함수가 역삼각함수
이름 표기법 정의 정의역 치역
아크사인 y = arcsin x 또는 y = sin-1 x x = sin y −1부터 +1 −π/2 ≤ y ≤ π/2
558
arcsine : numpy
삼각함수의 역함수가 역삼각함수
이름 표기법 정의 정의역 치역
아크사인 y = arcsin x 또는 y = sin-1 x x = sin y −1부터 +1 −π/2 ≤ y ≤ π/2
559
arcsine : numpy 그래프
삼각함수의 역함수가 역삼각함수
560
arccosine561
arccosine : numpy
삼각함수의 역함수가 역삼각함수
이름 표기법 정의 정의역 치역
아크코사인 y = arccos x 또는 y = cos-1 x x = cos y −1부터 +1 0 ≤ y ≤ π
562
arccosine : numpy 그래프
삼각함수의 역함수가 역삼각함수
563
arctangent564
삼각함수의 역함수
삼각함수의 역함수가 역삼각함수
이름 표기법 정의 정의역 치역
아크탄젠트 y = arctan x 또는 y = tan-1 x x = tan y 모든 실수 −π/2 < y < π/2
565
PYTHON
SYMPY
삼각함수
기초
Moon Yong Joon
566
삼각함수567
Sin 함수 처리
sin 함수 두개의 각을 더할 경우 아래의 공식으
로 계산
568
Sin 함수 뺄셈 예시
sin 함수 두개의 각을 뺄 경우 아래의 공식으로
계산
569
7.지수
/로그
기초
Moon Yong Joon
570
지수함수 기초
Moon Yong Joon
571
지수 함수572
지수 함수란?
x에 대한 지수함수(exponential function).
a>0 커야 실수 값으로 처리되며 a=1일 경우 항
상 1인 상수가 됨
임의의 실수 x에 대해 함수
573
임의의 실수 x에 대해
y = ex
5의 지수는 e5이고 약 148.413과 같습니다
자연지수함수
ex에서 e는 약 2.71828인 자연 로그의 밑이고,
x는 입력하는 값으로 구성된 함수
574
지수함수 그래프
지수함수는 a>0 크면 우상향 그래프 0<a<1 이
면 우하향 그래프가 됨
575
지수 법칙576
지수 법칙
동일한 상수의 곱일 경우 지수는 덧셈, 동일한
상수의 제곱에 제곱은 지수끼리 곱셈 처리
* =1
역수
577
지수 법칙: 거듭제곱의 곱
동일한 밑에 대한 거듭제곱에 대한 곱셈은 지수
간의 덧셈과 동일
578
지수 법칙: 거듭제곱의 거듭제곱
동일한 밑에 대한 거듭제곱의 거듭제곱은 지수
간의 곱셈처리
579
지수 법칙 :python 예시580
지수 법칙 : exp
자연로그에 대한 제곱승 계산
581
지수 법칙 : exp 그래프
복리 이자, 방사선 감소 또는 모집단 성장과 같
이 일정한 지수 요인에 의해 증가 또는 감소하는
양을 모형화하는 데 자주 사용
582
로그함수 기초
Moon Yong Joon
583
로그함수란584
로그함수 정의
어떤 수를 나타내기 위해 고정된 밑을 몇 번 곱하
여야 하는지를 나타내는 함수이면서
지수함수의 역함수가 로그함수
585
로그함수 규칙
밑과 진수, 로그함수의 관계
586
상용로그
밑(Base)이 10 인 로그를 상용로그(상용대수:
Common Logarithm)라고 함
587
상용로그 : log10
밑(Base)이 10 인 로그를 상용로그(상용대수:
Common Logarithm)라고 함
588
자연로그
밑이 e (오일러 상수: 약 2.718) 인 로그를 자연
로그(자연대수: Natural Logarithm)
정의
기초성질
589
자연로그 : log
밑이 e (오일러 상수: 약 2.718) 인 로그를 자연
로그(자연대수: Natural Logarithm)
590
로그함수 성질591
로그함수의 성질 1
로그의 진수가 1인 경우 는 0, 로그의 진수와 밑
이 같으면 1
양변에 밑을 a로 하는 log
로 곱하면
=
592
로그함수의 성질1 : 예시
Numpy.log10는 상용로그, numpy.log는 자연
로그로 처리
593
로그함수의 성질 2 : 지수의 곱
로그의 진수가 M*N일 경우 log의 덧셈으로 분리
log100 = log10+log10 = 2
594
로그함수의 성질 2: 지수의 나누기
로그의 진수가 M/N일 경우 log의 나누기으로 분
리
log100/100= log100- log100 = 1
ax =M, ay = N
이면
595
로그함수의 성질 2: 상수 배
로그의 진수가 M*N일 경우 log의 상수배를 밖으
로 분리
log10**2= 2 log10 = 2
596
로그함수의 성질 2 : 예시
Numpy.log10으로 사용로그를 처리
597
밑의 변환
로그에 대해 밑을 c로 하는 로그 함수로 변환이
가능
log 10 100 = log 10 100 / log 10 10
= 2/1 = 1
598
8. 수열
기초
Moon Yong Joon
599
급수 기초
Moon Yong Joon
600
급수(級數,series, ∑an)601
급수(級數,series, ∑an)
수학에서의 급수는 수열 a_1, a_2, a_3, ... ,
a_na1​​,a2​​,a3​​,...,an까지 주어졌을 때 이것들을 다 더
해 a_1+a_2+a_3+...+a_n, a1​​+a2​​+a3​​+...+an로
나타낸 것, 즉 수열의 합을 의미한다.
급수의 예는 등차수열, 등비수열의 합, 자연수의 거
듭제곱의 합 등이 있다
602
급수의 표현 1
Σ 는 일반항 식을 가지고 시작항과 마지막 항까
지의 합을 표시하는 수학식
603
급수의 표현 2
급수는 연속된 숫자들이 합을 구하는 것에 대한
일반식과의 비교
604
급수의 성질605
급수의 일반적인 성질
급수간의 계산을 위해 필요한 산식
배분의 가능
상수는 n번 덧셈
상수는 Σ 밖으로 배출
606
급수의 일반적인 성질
급수 내에 곱과 나눗셈에 대해서는 Σ를 배분할
수 없음
급수의 나눗셈
급수의 곱
607
유한급수 , 무한급수
수열의 모든 항을 더한 것이다. 항의 개수가 유한
한 유한 급수(有限級數, finite series)와 항의 개수가
무한한 무한 급수(無限級數, infinite series)로 분류
됨
유한 급수(有限級數, finite
series)
무한 급수(無限級
數, infinite series)
608
등차급수609
등차급수
등차급수[ arithmetic series , 等差級數 ]
산술급수(算術級數)라고도 한다. 등차수열을 이
루고 있는 것을 말 함
급수 a1+a2+a3+…+an+…에서
an=an-1+d(n=2,3,…) 인 관계식
급수로 표시
610
등비급수611
등비급수
기하급수(幾何級數)라고도 한다.
급수 a1+a2+a3+…+an+…에 있어
an=arn-1 (n=2,3,…)인 관계식
612
수열 기초
Moon Yong Joon
613
수열614
수열
수에 대해 일렬로 구성하는 수열이 내부 구성 구
조는 합과 곱으로 처리
수열의 합
615
수열의 곱
등차수열(Arithmetic Sequence)616
등차수열
초기값을 가지고 동일한 값으로 숫자가 증가되
는 수열
일반항
617
공차
등차수열에서 연속하는 두 수의 차이를 공차(公
差. Common difference)라고 한다. 보통 d로 표
시한다
618
등차 수열의 합619
등차 수열의 합 : 등차급수
등차급수( arithmetic series)는 등차수열의 합이
다. 초항부터 n번째 항까지의 합Sn는 다음과 같은
공식으로 나타난다
620
등차 수열의 합의 산식
하나의 등차수열과 이 등차수열을 역으로 변환해
서 더하며 동일한 패턴이 값이 나오고 이를 다시
하나(2로 나눔)로 만들면 합산 값이 됨
등차수열을 역순으로 만들고 합산
하면 동일한 결과를 가진 패턴이
나옴
패턴 찾을 것을 2로 나누면 수열
의 합이 계산됨
621
등차수열의 합 1
첫번째항과 마지막 항을 알고 둘 사이의 개수를
알 경우
622
등차수열의 합 2
첫째항과 공차만 있을 경우 처리하는 방식
첫번째항(a), 마지막항( a*(n-1)*d)을 더해서 총
개수만큼 곱하고 이를 2로 나눈면 됨
623
초기값이 중간부터 오는 경우
초기값이 중간부터 올 경우 계산하는 급수
초기값 a= 11 이고 공차 d = 1이면서
개수 n = 5 인 급수를 계산하기
11+ 12 + 13 + 14+ 15
산식 = na + n/2(n-1)d
= 5*11 + 5/2(5-1) *1
= 55 + 10
= 65
624
등비수열(Geometric Sequence)625
등비수열
초기값을 가지고 동일한 값으로 곱해서 얻어지
는 수열
일반항
626
공비
등비수열에서 연속하는 두 수의 차이를 공비
( Common ratio)라고 한다. 보통 r로 표시한다
627
등비 수열의 합628
등비 수열의 합 : 등비급수
a1부터 an까지 더한 합인 등비급수( geometric
series) 또는 기하급수 Sn은 다음과 같이 구할 수
있다.
629
등비수열의 합
첫번째과 등비를 알 경우 계산이 가능 단 등비가
1일 경우는 첫번째 항에 개수만큼 곱하면 됨
동일한 값으로 처리를 위해 등
비로 양변을 곱하고 빼면
630
등비수열의 합 예시
등비수열의 Sn합은 an(다음항) – a(초항)/(등비-
1)로 처리
S4 = 2+4+8+16 = 30
S5는
다음항 a5 = 32
S3 = 32 – 2/(2-1)
r = 2
a1 = 2
a2 = 4
a3 = 8
a4 = 16
631
등비수열의 합 예시
첫번째과 등비를 알 경우 계산이 가능 단 등비가
1일 경우는 첫번째 항에 개수만큼 곱하면 됨
632
수열의 극한
Moon Yong Joon
633
급수와 극한634
수열의 극한
수열의 극한(數列-極限, limit of a sequence)
은 수열이 한없이 가까워지는 값이다.
직관적으로, 수열 (an)이 수렴(收斂, convergent)
한다는 것은 n이 커짐에 따라 an이 어떤 고정된
값 a에 한없이 가까워지는 것을 뜻한다. 이때 a를
수열 {an}의 극한이라고 한다.
수열이 수렴하지 않으면 발산(發散, divergent)한
다고 한다.
635
부분합 급수
무한급수 중에 특정 위치까지의 유한개의 항에
대한 합을 나타내는 급수
636
무한수열과 극한
무한수열 {an}에서 n이 무한히 커짐에 따라 an이
일정한 값 α에 한없이 가까워지면, α를 그 수열
의 극한 또는 극한값(limit value)
부분합
n이 한없이 커진다: n-> 무한대
an 한없이 ά에 가까워진다 : an-> ά
무한수열의 극한값 ά이다 ->
637
수렴과 발산638
수렴
한 점으로 모인다는 뜻. 보통 의견 수렴이라든지
여론 수렴 등등으로 해서 한 점에 모인다는 의미
로 사용하는 경우가 많은데, 이 뜻을 수학으로 빌
려와서 여러 값이 기어코야 한 값으로 모이게 되
었다는 의미로 사용한다.
즉 x가 a에 한없이 가까워지거나 한없이 커지거
나 작아지면 f(x)도 어디로 한없이 가까워진다는
뜻.
639
발산
수렴하지 않으면 발산한다. 수열이 계속 커지는
양의 무한대로 발산, 수열이 계속 작아지는 음의
무한대로 발산이 있다.
640
수열 극한의 기본 성질641
극한의 기본 성질
수열이 수렴할 때 이 기본 성질이 사용됨
642
PYTHON
SEQUENCE
(STRING)
DATA TYPE
643
Sequence : String Type644
Sequence 타입-str
str 내의 주요 속성과 메소드들
645
String 갱신: 새로 만들기
문자열은 immutable이지만 + 연산자는 새로운
문자열 객체를 만들어 결과를 제공
646
String-operator
Operator Description Example
+
Concatenation - Adds values on either side of the operato
r
a + b will give HelloPython
*
Repetition - Creates new strings, concatenating multiple c
opies of the same string
a*2 will give -HelloHello
[]
Slice - Gives the character from the given index a[1] will give e
[ : ]
Range Slice - Gives the characters from the given range a[1:4] will give ell
in
Membership - Returns true if a character exists in the giv
en string
H in a will give 1
not in
Membership - Returns true if a character does not exist in
the given string
M not in a will give 1
r/R
Raw String
print r'n' prints n and print R'n'prints 
n
%
Format - Performs String formatting See at next section
647
Operator+ 함수 처리 예시
Sequence 타입에 기본으로 처리 되는 함수,
operator
+ : str, list, tuple만 처리 가능하
지만 str, tuple은 별도의 객체로 제
동
min(), max() : 문자열은 숫자값을
기준, list일 경우는 내부 list를 확인
해서 처리
648
String-escape 문자
Backslash notation Hexadecimal character Description
a 0x07 Bell or alert
b 0x08 Backspace
000 널문자
cx Control-x
C-x Control-x
e 0x1b Escape
f 0x0c Formfeed
M-C-x Meta-Control-x
n 0x0a Newline 은 라인피드 (Line Feed) 는 커서의 위치를 아랫줄로 이동
nnn Octal notation, where n is in the range 0.7
r 0x0d Carriage return은 현재 위치를 나타내는 커서 를 맨 앞으로 이동
s 0x20 Space
t 0x09 Tab
v 0x0b Vertical tab
x Character x
xnn Hexadecimal notation, where n is in the range 0.9, a.f, or A.F
 문자 ""
' 단일 인용부호(')
" 이중 인용부호(")
649
Sequence : String method650
Sequence-String 메소드(1)
String 내장 메소드
Method Description
capitalize() Capitalizes first letter of string
center(width, fillchar) Returns a space-padded string with the original string centered to a
total of width columns.
count(str, beg=
0,end=len(string))
Counts how many times str occurs in string or in a substring of string if
starting index beg and ending index end are given.
decode(encoding='UTF-
8',errors='strict')
Decodes the string using the codec registered for encoding. encoding
defaults to the default string encoding.
encode(encoding='UTF-
8',errors='strict')
Returns encoded string version of string; on error, default is to raise a
ValueError unless errors is given with 'ignore' or 'replace'.
endswith(suffix, beg=0,
end=len(string))
Determines if string or a substring of string (if starting index beg and
ending index end are given) ends with suffix; returns true if so and false
otherwise.
expandtabs(tabsize=8) Expands tabs in string to multiple spaces; defaults to 8 spaces per tab if
tabsize not provided.
651
Sequence-String 메소드(2)
String 내장 메소드
Method Description
find(str, beg=0
end=len(string))
Determine if str occurs in string or in a substring of string if starting
index beg and ending index end are given returns index if found and -1
otherwise.
index(str, beg=0, end=len(st
ring))
Same as find(), but raises an exception if str not found.
isalnum() Returns true if string has at least 1 character and all characters are
alphanumeric and false otherwise.
isalpha() Returns true if string has at least 1 character and all characters are
alphabetic and false otherwise.
isdigit() Returns true if string contains only digits and false otherwise.
islower() Returns true if string has at least 1 cased character and all cased
characters are in lowercase and false otherwise.
partition () Split the string at the first occurrence of sep, and return a 3-tuple
containing the part before the separator, the separator itself, and the
part after the separator.
652
Sequence-String 메소드(3)
String 내장 메소드
Method Description
isspace() Returns true if string contains only whitespace characters and false
otherwise.
istitle() Returns true if string is properly "titlecased" and false otherwise.
isupper() Returns true if string has at least one cased character and all cased
characters are in uppercase and false otherwise.
join(seq) Merges (concatenates) the string representations of elements in
sequence seq into a string, with separator string.
len(string) Returns the length of the string
ljust(width[, fillchar]) Returns a space-padded string with the original string left-justified to a
total of width columns.
lower() Converts all uppercase letters in string to lowercase.
lstrip() Removes all leading whitespace in string.
maketrans() Returns a translation table to be used in translate function.
653
Sequence-String 메소드(4)
String 내장 메소드
Method Description
max(str) Returns the max alphabetical character from the string str.
min(str) Returns the min alphabetical character from the string str.
replace(old, new [, max]) Replaces all occurrences of old in string with new or at most max
occurrences if max given.
rfind(str, beg=0,end=len(stri
ng))
Same as find(), but search backwards in string.
rindex( str, beg=0,
end=len(string))
Same as index(), but search backwards in string.
rjust(width,[, fillchar]) Returns a space-padded string with the original string right-justified to
a total of width columns.
rstrip() Removes all trailing whitespace of string.
split(str="", num=string.cou
nt(str))
Splits string according to delimiter str (space if not provided) and
returns list of substrings; split into at most num substrings if given.
splitlines( num=string.count
('n'))
Splits string at all (or num) NEWLINEs and returns a list of each line with
NEWLINEs removed.
654
Sequence-String 메소드(5)
String 내장 메소드
Method Description
startswith(str,
beg=0,end=len(string))
Determines if string or a substring of string (if starting index beg and
ending index end are given) starts with substring str; returns true if so
and false otherwise.
strip([chars]) Performs both lstrip() and rstrip() on string
swapcase() Inverts case for all letters in string.
title() Returns "titlecased" version of string, that is, all words begin with
uppercase and the rest are lowercase.
translate(table, deletechars
="")
Translates string according to translation table str(256 chars), removing
those in the del string.
upper() Converts lowercase letters in string to uppercase.
zfill (width) Returns original string leftpadded with zeros to a total of width
characters; intended for numbers, zfill() retains any sign given (less one
zero).
isdecimal() Returns true if a unicode string contains only decimal characters and
false otherwise.
655
주요 메소드 처리 예시656
String : count
문자열내의 문자 값이 몇 개 존재한지를 확인하
는 메소드
657
String : find
문자열 내의 원소가 어디에 위치한지를 찾는 메
소드
658
String : index
문자열 내의 원소가 어디에 위치한지를 찾는 메
소드
659
문자열 내의 구성
문자열이 알파벳이나 숫자 역부 확인
660
String : partition
문자열을 특정 문자로 분리해서 3개의 원소를 갖
는 tuple로 반환
661
String : join 메소드
list를 특정 분리자에 의해 통합해서 문자열로 생
성. dict 타입일 경우는 문자열 키일 경우만 처리
662
String : split 메소드
문자열을 특정 분리자에 의해 분리해서 list 타입
으로 생성
663
String : startswith
문자열에 구성된 위치에 prefix 값이 존재한지를
확인하는 메소드
664
String : endswith
문자열에 구성된 위치에 suffix 값이 존재한지를
확인하는 메소드
665
Translate:문자열 치환666
String : translate
문자열을 치환 및 삭제를 동시에 처리하는 메소
드
667
string.maketrans : help
변경을 매핑할 테이블을 만들기
668
string.maketrans ; 정의
테이블을 만들어 ‘c’를 ‘k’로, ‘s’를 ‘z’로 전환하
는 table 생성
abkdefghijklmnop
qrztuvwxyz
abcdefghijklmnop
qrstuvwxyz
변환
669
String : translate : 치환 사례 1
문자열에 대한 치환 테이블에 정의된 대로 문자
열을 치환 처리
670
String : translate : 치환 사례 2
문자열에 대한 치환 테이블을 string.maketran
함수로 정의하고 translate 메소드를 이용해서 문
자를 숫자로 치환
671
Translate: 3버전 문자열치환672
Translate : table 만들기
3버전부터는 table을 dict 타입으로 정의해서 사
용을 함
dict{ ord(key) : valeue}
키/값으로 전환을 정의
하지만 ord(key)로 정
의해서 처리
673
Translate: 문자열 치환 예시
Translate메소드는 변경된 테이블을 dict 타입으
로 정의하고 key값은 ord 타입으로 전환해야 함
674
Translate:문자열 삭제675
String : translate : 삭제
Translate 메소드에 두번째 인자에 문자열로 값을 넣
으면 문자열 내의 일치하는 것을 전부 삭제 처리
676
PYTHON
SEQUENCE
(LIST)
DATA TYPE
677
Sequence : List Type678
Sequence-List
list 내의 스페셜 메소드를 제외한 내장 속성 확
인
list의 인스턴스를 생성하고
isinstance 함수를 이용하여
인스턴스 여부 확인
679
Sequence - List 기본 처리
List 타입에 대한 기본 처리
Python Expression Results Description
l=[1,2,3] l.append(4) [1, 2, 3, 4] 리스트에 원소 추가
del l[3] [1, 2, 3] 리스트에 원소 삭제
len([1, 2, 3]) 3 Length 함수로 길이 확인
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 리스트를 합치니 Concatenation
['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 리스트 내의 원소를 Repetition
3 in [1, 2, 3] True 리스트 내의 원소들이 Membership
for x in [1, 2, 3]: print x, 1 2 3 리스트의 원소들을 반복자 활용 - Iteration
680
Sequence-List : +/extend
list + list는 다른 리스트를 생성하지만
list.extend메소는는 리스트 내의 원소를 확장함
681
Sequence-List 용 내장함수
내장함수중에 리스트 타입을 처리
Function Description
cmp(list1, list2) Compares elements of both lists.
len(list) Gives the total length of the list.
max(list) Returns item from the list with max value.
min(list) Returns item from the list with min value.
list(seq) Converts a tuple into list.
str(list) Produces a printable string representation of a list
type(list) Returns the type of the passed variable. If passed variable is
list, then it would return a list type.
682
Sequence-List : compare
2개의 리스트를 비교해서 같으면 0, 첫번째가
크면 1, 두번째가 크면 -1로 비교결과를 리턴
683
Sequence : List method684
Sequence-List 메소드
리스트 내장 메소드
Method Description
list.append(obj) Appends object obj to list
list.count(obj) Returns count of how many times obj occurs in list
list.extend(seq) Appends the contents of seq to list
list.index(obj) Returns the lowest index in list that obj appears
list.insert(index,obj) Inserts object obj into list at offset index
list.pop(obj=list[-1]) Removes and returns last object or obj from list
list.remove(obj) Removes object obj from list
list.reverse() Reverses objects of list in place
list.sort([func]) Sorts objects of list, use compare func if given
685
Sequence-List : append
list 내의 마지막 index 다음에 원소를 추가하
는 메소드
686
Sequence-List : count
list 내의 value이 개수를 나타내는 메소드
687
Sequence-List : pop
list 내의 index 위치를 확인하고 삭제하는 메
소드임 default가 항상 last 위치이며 위치를 주
면 삭제함. 인덱스범위가 넘으면 오류 처리
688
Sequence-List : remove
list 내의 value를 기준으로 삭제하는 메소드로
써 중복된 값이 있을 경우 하나씩 삭제함
689
Sequence-List : insert
list 내의 위치를 지정해서 원소를 넣을 때 [index]
일 경우는 index 범위가 벗어나면 오류가 발생하지
만 insert는 벗어나면 append로 인식해서 처리
690
Sequence-List로 sort 처리
list.sort(key=함수명)은 함수처리된 결과를 기준
으로 소트를 진행함(올림차순별이 기본)
리스트 구성에 따라 값을 계산처리
691
Sequence-List로 stack 처리
Stack은 LIFO(last in first out)으로 List를 이용하
여 원소 추가(append메소드) 및 삭제(pop메소드)
로 간단하게 구성
692
Sequence-List로 queue 처리
queue은 FIFO(first in first out)으로 List를 이용
하여 원소 추가(append메소드) 및 삭제
(reverse,pop메소드)로 간단하게 구성
pop() 인자에 0을 부
여하면 첫 원소가 제
거
693
Sequence-List: reverse
list 내의 원소들위 위치를 반대방향으로 바꾸는 메
소드
694
문자열 삽입 위치 확인695
Bisect 모듈
문자열 내의 특정 원소가 삽입될 인덱스의 위치
를 확인하는데 사용.
696
list comprehension697
List Comprehension
리스트 정의시 값을 정하지 않고 호출 시 리스트
내의 값들이 처리되도록 구성
A = [ 표현식 for i in sequence if 논리식]
698
List Comprehension : 다중
리스트 내의 다중 for문을 이용해서 처리
A = [ 표현식 for i in sequence for j in sequence
if 논리식]
699
PYTHON
SEQUENCE TYPE
(INDEX/SLICE)
검색
700
Sequence 타입 검색 방법701
검색 방법
Sequence 타입 안에 들어있는 원소를 접근하는
법
index
slice
실제 원소에 값을 직접 접근하는 법
특정 원소들을 가지는 부분 집합으
로 검색하는 방법
702
Index/slice 검색703
Sequence 타입 검색
String 타입을 제외하고 index는 원소의 타입이
고 slice는 시퀀스 타입으로 처리됨
704
Accessing Values : index
Sequence Type(String, List, Tuple)은 변수명
[index]로 값을 접근하여 가져옴
변수에는 Sequence
Instance이 참조를 가
지고 있고 [index]를
이용하여 값들의 위치
를 검색
705
Index와 slice 차이
Index는 범위가 벗어나면 오류이지만 slice 접근
은 범위가 벗어나도 오류를 내지않음
706
Index/slice 갱신707
Updating Values : list
변수에는 Sequence Instance이 참조를 가지고
있고 index를 이용하여 값들의 위치를 검색하고
할당값을 변경.
708
Updating Values: string
문자열은 immutable이므로 [index]로 접근해서
갱신이 불가하므로 별도 로직을 작성해서 변경
709
enumerater 함수710
index 와 값 사용하기
Sequence 내장함수(enumerate)을 이용해서
index 값도 활용
711
Slice()함수 사용하기712
slice() 함수 이용
내장 slice() 함수를 이용해서 slicing 조회 가능
713
slice() 함수 이용해서 계산
내장 slice() 함수를 이용해서 slicing 조회 가능
714
Slice 내부 메소드(모든버전용)715
slicing 내부 조회/갱신/삭제
Sequence 타입 에 대한 원소를 조회, 갱신, 삭제를
추가하는 메소드, 갱신과 삭제는 list 타입만 가능
(python 2.x에만 있음)
object.__getslice__(self, i, j)
object.__setslice__(self, i, j, sequence)
object.__delslice__(self, i, j)
검색
생성/변경
삭제
716
Slice 내부 메소드(2버전용)717
Container 내부 조회/갱신/삭제
List,dict 에 대한 원소를 조회, 갱신, 삭제를 추가하
는 메소드, list는 index에 범위 내에서만 처리됨
(모든 버전에 사용)
object.__getitem__(self, key)
object.__setitem__(self, key, value)
object.__delitem__(self, key)
검색
생성/변경
삭제
718
get/set/del item 예시
dict/list/tuple 등 타입으로 생성된 자료에 대
해 검색하고 dict/list 등은 갱신과 삭제가 가능
한 내부 메소드
List는 index
로 참조
Dict은 key
값으로 참조
719
get/set/del slice 처리 예시
python 2버전일 경우에만 Sequence타입에 대
한 slicing 처리(item으로 통합됨)
720
9. 집합
기초
Moon Yong Joon
721
집합 기초
722
집합이란723
집합 정의
집합(集合, set)은 어떤 조건이 주어졌을 때, 그 조건
이 가리키는 대상이 분명한 것들의 모임
집합은 서로 구별되는 대상들을 순서와 무관하게 모
은 것이다. 이때 집합에 속하는 각각의 대상들은 집
합의 원소라고 한다.
724
집합 원소
집합을 이루는 대상 하나하나를 그 집합의 원소
또는 원이라고 한다. 또 어떤 것이 집합의 원소일
때 그것은 그 집합에 속한다라고 한다.
725
집합표기726
원소나열법
집합에 들어있는 원소들을 직접 나열하는 방식
727
조건제시법
원소들을 구체적으로 설명하는 대신에, 원소들의
논리적 관계를 기술
728
집합의 원소 표기729
집합의 원소
집합의 원소 유무를 확인하는 방법
730
집합의 원소일 경우 집합의 원소가 아닐 경우
부분집합731
부분집합
집합 B의 부분집합(部分集合, subset) A는, 모든
원소가 B에도 속하는 집합, 관계를 주로 A ⊆ B라
표기
732
부분집합의 개수
집합에 대한 부분집합의 개수
733
합집합 교집합734
합집합
두 집합 A, B의 합집합 A ∪ B는, A에 속하거나 B
에 속하는 원소들로 이루어진 집합이다.
735
교집합
두 집합 A, B의 교집합은 A ∩ B로 표기하며, A에
도 속하고 B에도 속하는 원소들을 골라놓은 집합
을 뜻한다.
736
여집합737
여집합
여집합(餘集合, 또는 보집합(補集合),
complement set)은전체집합 U가 정의되었을 때,
그의 부분집합 집합 A의 여집합은 AC 표기
738
두집합의 합집합의 여집합
전체 집합에서 두 집합의 합집합의 여집합은 두
집합의 여집합의 교집합과 동일
739
두집합의 교집합의 여집합
전체 집합에서 두 집합의 교집합의 여집합은 두
집합의 여집합의 합집합과 동일
740
차집합741
차집합
차집합(差集合, relative complement, set
difference)은 집합 B에 대한 A의 차집합은 B ∖ A
또는 B - A로 표기
742
집합의 추이적 관계743
추이적 관계
집합 A, B, C 대하여 정의된 이항관계 추이적 관
계(推移的關係, transitive relation)
744
PYTHON
SET
DATA TYPE
745
Set Type746
Set 타입
중복을 허용하지 않고, 순서가 없음 (unordered)
교집합(&), 합집합(|), 차집합(-) 연산 처리
Set: mutable set
Frozenset: immutable set
747
Set 타입 – 생성시 주의
내부 원소가 리스트 등 mutable 값이 들어갈 수
없음
Set은 구조상 내부 요소
가 변경이 가능한 값으
로 구성할 수 없다
Set 생성은 파라미터가
1개만 가능
748
Set 타입 – 생성
Set()으로 생성시 파라미터는 1개만 받는다. 리스
트 등 mutable 객체를 요소로 처리할 수 없음
749
Set 타입 – 검색
Set 타입은 index/slice 검색을 제공하지 않으므
로 내부 원소는 for문을 통해 원소를 조회
Index 검색 오류 발생
750
dict.keys() 처리751
dict.keys() : 3버전
dict.keys()의 결과인 dict_keys 객체도 set 연산
자를 지원
752
FrozenSet Type753
FrozenSet 생성 및 추가
FrozenSet type은 immutable 타입이므로 생성
후 원소를 추가나 삭제가 불가능
생성 이후 변경 불가
754
Set Type 내장함수/메소드755
Set 타입- 내장 함수
Operation Equivalent Result
len(s) cardinality of set s
x in s test x for membership in s
x not in s test x for non-membership in s
756
Set 타입- 메소드 1
Operation Equivalent Result
s.issubset(t) s <= t test whether every element in s is in t
s.issuperset(t) s >= t test whether every element in t is in s
s.union(t) s | t new set with elements from both s and t
s.intersection(t) s & t new set with elements common to s and t
s.difference(t) s - t new set with elements in s but not in t
s.symmetric_difference(t) s ^ t
new set with elements in either s or t but not b
oth
s.copy() new set with a shallow copy of s
757
Set 타입- 메소드 2
Operation Equivalent Result
s.update(t) s |= t update set s, adding elements from t
s.intersection_update(t) s &= t
update set s, keeping only elements found in bot
h s and t
s.difference_update(t) s -= t update set s, removing elements found in t
s.symmetric_difference_update(t) s ^= t
update set s, keeping only elements found in eithe
r s or t but not in both
s.add(x) add element x to set s
s.remove(x) remove x from set s; raises KeyError if not present
s.discard(x) removes x from set s if present
s.pop()
remove and return an arbitrary element from s; rais
es KeyError if empty
s.clear() remove all elements from set s
758
내장함수/메소드 예시759
Set 타입 – 타입내부 점검 처리
object, type, int 내부의 special method에 대
해 override된 것을 비교
760
Set 타입 – 기본 연산 처리
Set type은 mutable 타입이므로 생성 후 원소에
대한 연산 처리
761
Set 타입 – update
하나의 set에 다른 set을 추가하는 메소드 결과
값은 합집합한 결과와 동일
762
Set 타입 :intersection_update
하나의 set에 다른 set간의 매칭되는 원소만 남
기는 메소드 결과값은 교집합한 결과와 동일
763
Set 타입 :difference_update
하나의 set에 다른 set간의 매칭해서 첫번째 집합이
매치되지 않는 원소만 남기는 메소드 결과값은 차집
합한 결과와 동일
764
Set 타입 :symmetric_difference_update
하나의 set에 다른 set간의 매칭되는 원소를 빼고 양
쪽 집합이 매치되지 않는 원소만 남기는 메소드
765
Set 타입 – add
Set의 원소를 추가하는 메소드. 동일한 원소를 추
가해도 set 기준에 따라 변경되지 않음
766
Set 타입 – remove
Set의 원소를 하나씩 삭제하는 메소드
767
Set 타입 – discard
Set의 원소를 하나씩 삭제하는 메소드
768
Set 타입 – pop
Set의 원소를 하나씩 hash 위치 별로 삭제하는
메소드.
769
Set 타입 – clear
Set의 원소를 전부 삭제하는 메소드
770
set comprehension771
Set Comprehension
Set 정의시 값을 정하지 않고 호출 시 Set 내의 값
들이 처리되도록 구성
A = { 표현식 for i in sequence if 논리식}
772
set Comprehension : 다중
set 내의 다중 for문을 이용해서 처리
A = {표현식 for i in sequence for j in sequence
if 논리식}
773
10.미분/적분
기초
Moon Yong Joon
774
함수의 극한
기초
Moon Yong Joon
775
함수의 극한776
함수의 극한
함수의 극한( limit of a function)은 어떤 점에
가까이 다다름에 따른, 함수의 행태에 대한 개념
777
좌극한값/우극한값
그래프에서 좌축과 우축에서 접근하는 것에 따라
값을 구분
778
좌극한우극한
함수의 연속
함수f(x)가 정의역의 한점 a에 대해 다음 세 조건
을 만족하면 함수 f(x)는 x=a에서 연속되므로 연
속함수
779
함수의 극한의 수렴780
함수의 극한의 수렴
함수의 극한은 독립 변수가 일정한 값에 한없이
가까워질 때, 함숫값이 한없이 가까워지는 값이
존재하면 수렴한다고 함
781
함수의 극한의 성질782
함수 극한의 성질
수렴하는 함수들이 존재할 때 함수들의 사칙연산
을 처리할 수 있음
783
함수의 극한값784
지수함수
지수가 무한대로 갈 때 밑이 1보다 크면 무한대이
고 밑이 1보다 작으면 –무한대로 갈때 무한대가
됨
785
PYTHON
SYMPY
극한 기초
Moon Yong Joon
786
극한787
limit 함수 : 극한
극한을 처리하는 함수limit
788
미분(DIFFERENTIAL)
기초
Moon Yong Joon
789
할선과 접선790
할선
할선(割線, 가름선)은 원 또는 곡선과 두 개 이상
의 점에서 만나 그 원이나 곡선을 자르는 직선
791
접선
접선(接線)은 곡선 L의 두 점 A와 B로 정의되는 할선AB에
서 점 B가 곡선을 따라 점 A에 한없이 가까워 질때, 이 새
로운 선을 곡선L의 A에서 만나는 접선이라 한다
792
A 점과 만나
는 점을 접선
이고 이 점을
접점이라고
함
기울기
기울기(slope)는 직선이 기울어진 정도를 나타내
는 수
793
평균변화율: 할선기울기794
평균변화율 : 할선
y=f(x) 에서 A(a,f(a)), B(b,f(b))두 정점이 있을 때 두
점간의 변화를 계산하면 곡선 위의 두 점의 기울기를
의미
795
일때 라고 두면
미분 기호796
미분기호
미분 기호 이해하기
797
미분계수: 접선기울기798
순간변화율/미분계수
평균변화율의 극한을 취하여 함수 f(x)의 특정 지
점 x 에서 변화량 Δx가 0으로 수렴할 때의 변화
율을 순간변화율 즉 미분계수
799
순간변화율(미분계수) 흐름
접점의 기울기를 구하기 위한 흐름
800
평균변화율 구하기 미분
순가변화율 구하기
순간변화율(미분계수)의 그래프
B점에서 A점으로 이동하면 한점에서 만나는 접선
이 됨
801
미분 가능802
미분가능한 함수 : differentiable function
미분은 함수 f(x)의 순간변화율을 계산하는 과정
이다.
f(x)에서 미분계수 f'(a) 가 존재할 때 미분 가능이
라고 한다.
정의역의 모든 점에서 미분가능한 함수이다.
즉, 모든 곳에서 수직이 아닌 접선을 그릴 수 있다
는 것이다
803
미분가능
함수 f가 점 x0에서 미분가능하다는 건 그 점에서
의 미분, 즉 평균변화율의 극한이 존재하는 것으
로 정의된다
804
도함수805
미분계수와 도함수 차이
미분계수는 특정한 점 (a, f(a))에서 접선의 기울기를
의미하고 도함수는 임의의 점(x, f(x))에서의 접선의
기울기를 의미
806
x=1에서 미분계수는 f’(1) = 6
f(x)의 도함수는 f’(x) = 3x+3
도함수에 특정값이 들어가면 미분계수를 구할 수 있음
도함수
미분(微分)은 함수의 순간변화율을 구하는 계산 과정
이고 함수를 미분하여 생성되는 함수를 도함수
즉 미분계수의 일반화
807
변화률에 대해 limit(극한)
을 지정하면
변곡점808
변곡점
변곡점(point of inflection)은 위로 볼록인 곡선
상태에서 오목인 곡선 상태 또는 위로 오목인 곡
선상태에서 볼록인 곡선상태로 변하는 점
809
변곡점의 판정
f’’(a) = 0되고 x=a의 좌우에서 f’’(x)의 부호가
바뀌면 점(a,f(a))는 y=f(x)의 변곡점
810
극값811
극값
기울기가 양수에서 음수 또는 음수에서 양수로
전환되는 점 즉 미적분에서 접선기울기가 0인 상
태
812
그래프 이해하기
기울기가 양수이면 위로 상승하는 그래프이고 기
울기가 음수이면 아래로 하강하는 그래프이다
813
극대값, 극소값
증가 상태에서 감소상태로 전환하는 극값을 극대
값, 감소상태에서 증가상태로 전환하는 극값을
극소값
814
이계도함수815
이계 도함수
이계도함수란 도함수의 도함수라는 의미로서, 본
함수를 2번 미분하여 얻은 도함수. 함수 f(x)의 도
함수 f’(x)가 미분이 가능하면 f’(x)의 도함수를 이
계도함수 f’’(x)
816
미분 기본 공식 1817
미분의 기본 공식 : 1
상수의 미분, 실수배 미분, 함수의 미분에 대한 일
반 공식
818
상수미분
상수의 미분은 실제 0이 됨
819
상수미분 : sympy
상수의 미분은 실제 0이 됨
820
실수배 미분
c라는 실수배를 가진 함수의 미분에서 실수배는
미분에 영향을 미치지 않는다
821
실수배 미분 : sympy
c라는 실수배를 가진 함수의 미분에서 실수배는
미분에 영향을 미치지 않는다
822
함수의 미분
n 이 자연수일 경우 xn의 미분은 nxn-1
823
함수의 미분 : sympy
n 이 자연수일 경우 xn의 미분은 nxn-1
824
함수의 합과 곱 미분825
미분의 기본 공식 : 2
합과 차의 미분, 곱의 미분
826
합과차의 미분 : sympy
두 함수 합에 대한 미분은 각 함수의 미분에 합
과 같다
827
곱의 미분
두 함수 곱에 대한 미분은 f(x) 함수 미분과 g(x)
함수의 곱 + f(x)함수와 g(x)함수 미분의 곱과의
합과 같다
828
곱의 미분 : sympy
두 함수 곱에 대한 미분은 f(x) 함수 미분과 g(x)
함수의 곱 + f(x)함수와 g(x)함수 미분의 곱과의
합과 같다
829
미분 공식830
단순 함수의 미분 1 : sympy
단순 함수의 미분
831
단순 함수의 미분 2 :sympy
단순 함수의 미분
832
지수/로그 함수의 미분
지수/로그함수의 미분
833
삼각함수의 미분
삼각함수의 미분
834
기울기(벡터) 미분
Moon Yong Joon
835
gradient836
기울기(gradient)
기울기(gradient 그래디언트)란 벡터 미적분학에
서 스칼라장의 최대의 증가율을 나타내는 벡터장
을 뜻한다.
기울기를 나타내는 벡터장을 화살표로 표시할 때
화살표의 방향은 증가율이 최대가 되는 방향이며,
화살표의 크기는 증가율이 최대일 때의 증가율의
크기를 나타낸다.
837
기울기(gradient)의 의미
어느 방안의 공간 온도 분포가 스칼라장 φ로 주어졌다고 가정한
다. 이 때, 방안의 어느 한 점(x,y,z)에서의 온도는 φ(x,y,z)로 표
시할 수 있다. (온도는 시간에 의해 변화하지 않는다고 가정) 이
경우에 어느 한 지점에서의 기울기는 온도가 가장 빨리 증가하는
방향과 그 증가율을 나타낸다.
이번에는 산이나 언덕을 가정해보자. 어떤 지점(x,y)에서의 높이
를 H(x,y)로 표현하는 경우, 기울기는 가장 (위를 바라보는)경사
가 가파른 방향과 그 경사의 크기를 나타낸다.
기울기를 이용해 다른 방향의 증가율을 구하려면 기울기와 그 방
향의 단위 벡터의 내적을 취하면 된다.
기울기는 무회전성 벡터계이다. 즉, 기울기 벡터계에 대해 선적
분을 구하면 결과값은 경로와 상관없이 시작점과 끝점에 따라서
만 변화함을 뜻한다.
838
수학적 정의
수학적 정의
839
PYTHON
SYMPY
미분 기초
Moon Yong Joon
840
미분841
diff 함수 : 미분
diff 함수로 미분을 풀이
842
적분(INTEGRATION)
기초
Moon Yong Joon
843
적분844
적분 : integral
적분이란 부정적분이나 정적분의 값을 구하는
것이고 주어진 함수를 적분한다라고 표현하면 부
정적분을 구하는 것이고 구간을 주어 주어진 함
수를 적분한다고 하면 정적분이라고 함
845
적분 기호의 의미
적분은 미분된 함수에 대한 값들을 합하라는 뜻
846
예시
부정적분847
부정적분
부정적분(不定積分,indefinite integral)은 (모든)
역도함수를 구하는 연산이다. 함수 f(x)가 F(x)의
미분이면, F(x)는 f(x)의 역도함수이다.
848
부정적분과 미분의 관계
미분의 역연산으로서 정의되는 것을 부정적분
이라 함
849
정적분850
정적분: definite integral
리만 적분에서 다루는 고전적인 정의에 따르면 실수
의 척도를 사용하는 축도 공간에 나타낼 수 있는 연
속인 함수 f(x)에 대하여 그 함수의 정의역의 부분 집
합을 이루는 구간 [a, b] 에 대응하는 치역으로 이루
어진 곡선의 리만 합의 극한을 구하는 것이다. 이를
정적분(定積分, definite integral)이라 한다.
851
정적분: 식의 이해
x를 a부터 b까지 변화시키면서 f(x)에 dx를 곱한
것을 전부 합쳐라
852
적분 공식853
일반 적분 공식 : sympy
X에 대한 적분은 1/n+1*x**n+1로 처리
854
상수와 함수: sympy
일반 적분 공식
855
n차 함수: sympy
일반 적분 공식
856
함수의 곱: sympy
일반 적분 공식
857
도함수와 함수 곱: sympy
일반 적분 공식
858
일반 적분 공식
일반 적분 공식
859
일반 적분 공식
일반 적분 공식
860
치환적분 공식
일반 적분 공식
861
분수 적분 공식
가분수를 대분수로 바꾸고 적분
862
무리함수 적분공식
무리함수 적분 공식
863
로그/지수함수 적분공식
로그/지수함수 적분공식
864
삼각함수 적분공식
삼각함수 적분공식
865
11.확률과 통계
기초
Moon Yong Joon
866
경우의 수
기초
Moon Yong Joon
867
경우의 수868
경우의 수 (number of cases)
경우는 수는 사건에서 일어날 수 있는 경우의 가
짓수(원소의 개수)를 말하며, 합의 법칙과 곱의
법칙에 따라 경우의 수를 계산
같은 조건에서 여러 번 할 수 있는 실험이나
관찰로 얻어진 결과를 말한다.
즉, 어떤 실험이나 관찰에서 주어진 경우를
만족하는 경우의 집합
사건
시행 실험이나 관찰을 하는 행위
869
경우의 수 계산870
! 팩토리얼
1부터 자연 수 n까지의 수를 차례대로 계산한다
는 뜻
기본 팩토리얼 계산
0! 계산
871
합의 법칙872
합의 법칙
합의 법칙은 두 사건 A,B가 동시에 일어나지 않을 때
각각의 사건이 일어날 경우의 수를 서로 더해서 구하
는 경우
사건 A가 일어나는 경우의 수 : m
사건 B가 일어나는 경우의 수 : n
사건 A 또는 B가 일어날 경우의 수 = m+n
873
곱의 법칙874
곱의 법칙
곱의 법칙은 두 사건 A,B가 동시에(연달아서) 일어날
때 각각의 사건이 일어날 경우의 수를 서로 곱해서
구하는 경우
사건 A 가 일어나는 경우의 수 : m
사건 B가 일어나는 경우의 수 : n
사건 A와 사건 b가 동시에 일어날 경우의 수 : m*n
875
곱의 법칙:데카르트 곱
집합 A의 원소와 집합 B의 원소인 순서쌍을 만드
는 집합
집합 A={a,b}, B= {1,2} 일때
A*B = {(a,1),(a,2),(b,1),(b,2)}
즉 2*2 = 4
876
합/곱의 법칙의 구별877
합/곱의 법칙 구별
동시에 일어나는 사건을 경우 별개의 두 사건이 모두 발
생하는 것(곱의 법칙)이고, 별개의 두 사건이 있는 경우
둘다 일어나지 않아도 상관없는 것(합의 법칙)임
독립사건 A 또는 B가 일어나는 경우의 수를
구할 때에는 합의 법칙이 이용된다.
독립사건 A와 B가 동시에 일어나는 경우의 수
를 구할 때에는 곱의 법칙이 이용된다
878
순열/조합
기초
Moon Yong Joon
879
순열880
순열
서로 다른 n개에서 r개를 택해 순서를 정해 일렬
로 나열하는 것을 순열이라고 함
 서로 다른 n개
 중복을 허락하지 않는 r 개를 선택
 일렬로 나열하는 수
881
순열 사용하는 경우
일렬로 늘어서는 경우
순서를 생각해서 나열하는 방법의 수
직위가 다를 경우(회장, 부회장 등)을 뽑는 경우
상대적으로 다른 곳에 배열하는 경우
882
순열 예시
서로 다른 5개에서 3개를 택해 순서를 정해 일렬
로 나열하면 총 60가지의 경우의 수가 생김
1 2 3 4 5
5 4 3
5개 중에 하나 4개 중에 하나 3개 중에 하나
n 개
r 개
5P3 = 5!/2!
= 5*4*3
= 60
883
같은 조건을 가진 순열884
같은 조건을 가진 것들이 순열
n개에서 서로 같은 것이 각각 p,q, …r개씩 있을
때 , 이들을 모두 택하여 일렬로 나열하는 순열의
수
885
중복순열886
중복순열
서로 다른 n개에서 중복을 허용해서 r개를 택해
일렬로 나열하는 것을 중복순열이라고 함
887
조합888
조합
서로 다른 n개에서 순서를 생각하지 않고 r개를
택하는 것을 조합(순열에서 중복을 제거하면 조
합이 됨)
889
조합의 특징
조합의 특징
890
중복조합891
중복조합
조합과 마찬가지로 n개의 원소에서 r개를 순서에
상관없이 뽑는데, 중복을 허락할 때의 가짓 수.
기호로는 (( n
r))또는 nHr 로 사용
892
확률 용어
Moon Yong Joon
893
확률이란894
확률
확률현상은 불확실성에 대해 좌우되는 현상이다.
확률현상에 대해 현실에서 실험하는 것을 확률실
험(ε)이라고 한다.
확률현상에서 얻어질 수 있는 모든 결과를 표본
공간(Ω) 이라고 한다.
또한 표본공간의 부분집합을 확률사건(E,Event)
라고 한다. 한 확률실험에서 ‘어떤 사건이 일어나
리라고 예축되는 정도를 나태내는 수치'를 그 사
건이 일어날 확률이라고 한다.
895
통계적 확률
시행횟수 n이 커짐에 따라 사건 A가 일어나는 횟
수를 r이라 하면 상대도수 r/n이 일정한 값 p에
가까워질 때, 이 일정한 p를 구함
896
수학적 확률
어떤 시행의 표본공간 S가 n개의 근원사건으로
이뤄져 있고 각 근원사건이 일어날 가능성이 모
두 똑같이 기대될 때, 사건 A가 r개의 근원사건으
로 이루어져 있으면 사건 r이 일어날 확률 P(A)를
P(A) = r/n으로 정의
897
확률의 기본 특성
서로 배타적인 결과를 갖는 실험에서 어떤 사상
이 일어날 확률은 음수가 아닌 숫자로 표시
898
시행899
실험
실험(實驗)은 가설이나 이론이 실제로 들어맞는
지를 확인하기 위해 다양한 조건 아래에서 여러
가지 축정을 실시하는 일이다. 지식을 얻기 위한
방법의 하나이다. 실험은 관찰(축정도 포함)과 함
께 과학의 기본적인 방법의 하나이다. 다만 관찰
이 대상 그 자체를 있는 그대로 알려보는 일이라
면, 실험은 어떤 조작을 가해 그에 따라 일어나는
변화를 조사하고 결론을 내는 일이다.
900
시행(trial)
모든 결과가 우연에 의해서 지배가 되고 반복가
능하며 모든 결과가 예축이 가능한 실험이나 관
찰
확률실험(random experiment)즉 시행은 결과
가 우연에 좌우되는 현상을 실현시키는 행위는
실험, 관 찰, 조사 등으로써 몇 가지 특징을 가지
는 것을 시행 또는 확률실험이라고 한다.
901
표본공간(sample space)
표본공간 또는 전체 표본공간은 종종 S, Ω 또는
U로 표기되며, 실험 또는 임의 시도의 모든 가능
한 산출들의 집합이다.
902
확률 기초
Moon Yong Joon
903
경우의 수를 이용한 확률904
경우의 수를 이용
모든 경우의 수에 사건 A가 일어나는 경우의 수
로 확률을 표시
905
상대도수를 이용한 확률906
상대도수
특정 실험을 많이 해서 이에 실제 발생한 빈도에
따라 확률을 계산하는 경우
907
상대도수 기반의 확률
사건908
사건
확률에서는 실험에서 발생할 수 있는 결과들이 기본 사건
(elementary event) 이라고 불리는데 이것의 모음은 그
냥 사건이라고 일컫는다.
어떤 실험의 표본공간 S에 관한 사건(event)이란 S의 부
분 집 합을 뜻함. 즉, 실험의 가능한 결과로 이루어진 집
합을 사건 (event)이라 함
909
근원사건
사건 중에 표본공간의 전체집합에서
원소가 1개인 부분집합
주요 사건들
주요 사건들.
910
여사건
complementary
event
전사건
total event
공사건
empty event
어떤 사건 A가 일어나지 않는 사건
사건
event
시행의 결과로서 나타나는 것
일어날 수 있는 모든 경우의 사건
일어날 수 있는 모든 경우의 사건
독립사건911
독립
두 사건이 독립(獨立, independent)이라는 것은,
둘 중 하나의 사건이 일어날 확률이 다른 사건이
일어날 확률에 영향을 미치지 않는다는 것을 의
미한다.
예를 들어서, 주사위를 두 번 던지는 경우 첫 번째
에 1이 나오는 사건은 두 번째에 1이 나올 확률에
독립적이다.
912
독립사건
독립사건( Independent Event)은 서로 다른 사
건이 일어날 확률에 영향을 주지 않은 사건들
913
조건부 확률은 사건 B가 주어졌을 때 A가 일어
날 확률이지만 두 사건이 독립이라면독립사건의 조건
배반사건914
배반사건
배반사건(Exclusive Events)는 동시에 일어날 수 없
는 두 사건, 두 사건의 교집합이 공집합이 되는 사건
915
배반인 경우 배반이 아닌 경우
종속사건916
종속사건
종속사건(Dependent Events)은 사건 A가 일어
났을 경우에 사건 B가 일어날 확률을 말함
917
확률의
기본 법칙 정리
Moon Yong Joon
918
확률의 덧셈 정리919
기본
1) A의 여사건 A'의 확률은
P(A')=1-P(A)
2) 덧셈정리 : 두 사건 A, B에 대하여,
P(A∪B)=P(A)+P(B)-P(A∩B)
3) 임의의 두 사건 A, B가 주어졌을 때,
A와 B의 여사건이면
P(A∩B')= P(A)-P(A∩B)
4) 특히, A와 B가 서로 배반사건이면,
P(A∪B)= P(A)+P(B) .
920
확률의 덧셈정리 조건
• 두 사건 중 적어도 하나의 사건이 일어날 확률
과 관련
• 좁은 의미의 덧셈법칙은 상호배반일 경우만 가
능
• 배반이 아닌 경우 중복 계산되는 부분을 제거해
야 한다.
921
확률의 덧셈정리 식
사건 A 또는 사건 B가 일어날 확률은 사건A가 일
어날 확률 과 사건 B가 일어날 확률을 더해서 구
함
922
확률의 곱셈 정리923
기본
P(A and B): 결합확률 (joint probability)
• 두 사건이 함께 일어날 확률
P(A | B): 조건부확률 (conditional probability)
• 사건 B가 주어진 조건 하에서 사건 A가
일어날 확률
P(A), P(B): 주변확률 (marginal probability)
• 비조건부 확률
924
곱셈법칙 조건
• 두 사건이 함께 일어날 확률과 관련
• 좁은 의미의 곱셈법칙은 상호독립일 경우만 가
능
• 독립이 아닌 (종속의) 경우 하나의 주변확률과
다른 하나의 조건부확률을 곱해야 한다
925
확률의 곱셈정리식 : 조건부
사건 A 와 사건 B가 동시에 일어날 확률은 사건
A가 일어날 확률 과 사건 B가 일어날 결합확률은
확률의 곱으로 구함
926
확률의 곱셈정리 : 독립사건
두 사건이 서로 독립일 때, 두 사건이 모두 일어
날 확률은 각각의 비조건부 확률을 곱하여 얻는
다. 이를 좁은 의미의 곱셈법칙이라고 부른다.
927
조건부 확률
Moon Yong Joon
928
조건부 확률929
조건부 확률
조건부 확률 (conditional probability)이란 사
건 B가 일어났다고 가정했을 때에 사건 A가 일어
날 확률을 가리켜,
P(A┃B) 로 표시하고,
이를 사건 B를 조건으로 하는 A의 조건부 확률이
라 한다.
930
조건부 확률 산식931
조건부 확률공식 : 벤다이어그램
P(A|B) : 조건부확률
• 사건 B 가 주어진 조건 하에서 사건 A 가일어날 확률
• 사건 B 에만 포커스를 맞춤
• 사건 B의 확률에 대한 사건 A와 B 결합사건확률의 상대적
크기
932
P(B) 구하기:
벤다이어그램
조건부 확률공식 : 산식
| 기호의 의미는 어떤 사건이 다른 사건의 발생을
조건으로 일어나는 확률을 의미
933
조건부 확률공식 : 예시
주사위가 소수이면서 홀수가 나올 확률은
A:홀수= {1,3,5}, B:소수={2,3,5}
A와 B이 교집합 = {3,5}
934
독립시행 확률
Moon Yong Joon
935
독립시행의 확률936
독립시행의 확률
동일한 시행이 여러 번 반복되면 사건이 서로 독
립이므로 각 시행이 다른 시행에 영향을 미치지
않음
937
독립시행의 확률 예시938
독립시행 예시
주사위를 3번 던질 때 6의 눈이 2번 나올 확률
939
독립시행 예시
주사위를 6번 던질 때 1 또는 2의 눈이 2번 나올
확률을 구하여라.
940
1 2 3 4 5 6
1 or 2 o o x x x x
1 or 2 o o x x x x
1 or 2 o o x x x x
1 or 2 o o x x x x
1 or 2 o o x x x x
1 or 2 o o x x x x
1or 2 확률 = 2/6 = 1/3
= 6C2(1/3)2(1-1/3) 6-2
= 6!/2!4! (1/9)(4/81)
= 15*(16/729)
= 80/243
확률변수와 확률분포
기초
Moon Yong Joon
941
확률변수/분포942
확률변수
확률 변수(確率變數, random variable)는 확률실
험)시행에서 나타낼 수 있는 모든 결과에 대해 수
치를 대응시키는 것이며, 확률적인 과정에 따라
값이 결정되는 변수
943
확률분포
확률분포(確率分布, probability distribution)는
어떤 확률변수가 취할 수 있는 모든 값들과 그 값
을 취할 확률의 대응관계(상대도수, 함수)로 표시
를 하는것
944
이산확률변수/분포945
이산확률변수
이산확률변수(discrete probability variable) 유
한개의 값, 또는 셀 수 있는 개수의 값으로 구성되
어 있는 확률변수
946
이산확률분포
이산 확률분포는 이산 확률변수가 가지는 확률분
포를 의미한다. 여기에서 확률변수가 이산 확률
변수라는 말은 확률변수가 가질 수 있는 값의 개
수가 가산 개 있다는 의미
947
이산균등분표
이산 균등 분포 함수인 random.randint : Discrete
uniform distribution
randint(low, high=None, size=None, dtype='l')
948
확률질량함수949
확률질량함수
확률질량함수(probability mass function)은 이
상확률변수에서 특정한 값에 대한 확률을 나타내
는 함수
950
x x1 x2 x3 x4 … xn
P(X=xi) p1 p2 p3 p4 … pn
확률질량함수 예시
주사위를 한 번 굴릴 때의 값을 나타내는 확률 변
수가 X일 때, 이 확률 변수에 대응되는 확률 질량
함수는 f(x)=1/6이다.
951
x 1 2 3 4 5 6
P(X=xi) 1/6 1/6 1/6 1/6 1/6 1/6
연속확률변수/분포952
연속확률변수
연속적인 범위의 값을 지니는 확률변수, 연속량
으로 표기되어 가능한 변수값의 셀 수 없는 변수
953
연속확률분포
연속 확률분포는 확률 밀도 함수를 이용해 분포
를 표현할 수 있는 경우를 의미한다. 연속 확률분
포를 가지는 확률변수는 연속 확률변수라고 부른
다.
954
연속균등분포
연속균등분포(continuous uniform distribution)은
연속 확률 분포로, 분포가 특정 범위 내에서 균등하
게 나타나 있을 경우를 가리킨다. 이 분포는 두 개의
매개변수 a,b를 받으며, 이때 [a,b] 범위에서 균등한
확률을 가진다.
955
연속균등분포 예시
Uniform 메소드를 이용해서 연속균등분포를 표
시
uniform(low=-1, high=0, size=None)
956
정규분포
정규분포(正規分布,normal distribution) 또는
가우스 분포(Gauß分布,Gaussian distribution)
는 연속 확률 분포의 하나정규분포
957
정규분포 예시
정규분포 : random.standard_normal
평균은 0 이고 표준편차가1 인 분포를 정규분포
standard_normal(size=None)
958
확률밀도함수959
확률밀도함수
확률밀도함수(probability density function 약
자 PDF )f(x)는 일정한 값들의 범위를 포괄하는
연속확률변수의 확률을 찾는데 사용하고 연속데
이터에서의 확률을 구하기 위해서 확률밀도함수
의 면적을 구함
960
확률 밀도함수 f(x)와 구간[a,b] 에
대해 확률변수 X가 구간에 포함될
확률 P(a<= X<=b)는
확률밀도함수의 그래프
확률밀도함수 f(x)는 적분을 이용해서 그래프의
면적으로 확률을 처리
961
확률변수의
기대값(평균)
Moon Yong Joon
962
확률변수의 기대값963
확률변수의 기대값
확률 변수의 기댓값(期待값, expected value)은
각 사건이 벌어졌을 때의 이득과 그 사건이 벌어
질 확률을 곱한 것을 전체 사건에 대해 합한 값이
다.
이것은 어떤 확률적 사건에 대한 평균의 의미로
생각할 수 있다.
964
이산확률변수의 기대값
각 사건이 발생할 때의 결과와 그 사건이 벌어질 확
률을 곱한 것들을 전체 사건에 대해 합한 값입니다.
어떤 확률적 사건에 대한 평균의 의미로 생각할 수
있습니다. 확률변수(=랜덤변수)가 나타내는 확률분
포에서 중심 위치를 나타내는 척도이다.
965
이산확률변수의 기대값 예시
기대값의 예시
966
기대값
연속확률변수의 기대값
연속확률변수의 기대값은 확률밀도함수의 적분
967
기대값의 연산법칙968
기대값의 연산법칙
연산법칙
969
기대값의 연산법칙 예시
기대값 E(5X+3) 에 대한 처리
970
확률변수의
분산
Moon Yong Joon
971
확률변수의 분산972
확률변수의 분산
분산(Variance)은 각 확률변수들이 기대값(=확
률사건 평균)으로부터 얼마나 떨어져서 분산되어
있는지 가늠할 수 있는 하나의 척도, 즉 하나의 값
을 말한다. 사실 분산은 표준편차를 구하기 위한
과정이라고 보면 된다. 분산을 구하는 방법은 아
래와 같다.
분산은 소문자 시그마의 제곱으로 표현 σ2 한다
973
확률변수의 분산식
분산은 소문자 시그마의 제곱으로 표현 σ2 한다
974
편차의 제곱
편차의 제곱* 사건확률
분산
확률변수의 분산식 변형
분산식을 변형
975
분산 간편식
=-2E[XE[X]]
= -2E[X]E[X]
= -2E[X]2
를 이용해서 기대값 내의 기대값을
밖으로 배출
확률변수의 분산식
분산은 소문자 시그마의 제곱으로 표현 σ2 한다
976
기대값
분산
분산의 연산법칙977
분산의 연산법칙
연산법칙
978
확률변수의
표준편차
Moon Yong Joon
979
확률변수의 표준편차980
확률변수의 표준편차
표준편차(Standard deviation)란, 확률 사건의
평균인 기대값으로부터 일반적인 평균 차이로 인
식하면 된다. 표준편차는 적을 수록 기대값에 가
까이 위치하고 있다는 의미다.
표준편차는 소문자 시그마(sigma) σ 문자로 표현
981
확률변수의 표준편차식
표준편차는 소문자 시그마(sigma) σ 문자로 표현
982
확률변수의
공분산
Moon Yong Joon
983
확률변수의 공분산984
확률변수의 공분산
공분산은 두 확률변수의 상관관계를 나타내는 것
이다. 만약 두 확률 변수중 하나의 변수 값이 상승
하는 경향을 보일 때, 다른 확률변수 값도 상승하
는 상관관계에 있다면, 공분산의 값은 양수가 된
다. 반대로 두 개의 확률 변수중 하나의 변수 값이
상승하는 경향을 보일 때, 다른 확률변수 값이 하
강하는 경향을 보인다면 공분산의 값은 음수가
된다.
공분산이 0에 가까우면 상관관계가 적다는 것을
의미한다. Xi와 Xj의 공분산 σij = 0 이면 Xi와 Xj
는 독립이다.
985
확률변수의 공분산 식
공분산은 하나의 사건에 대하여 발생하는 두 확
률변수의 각 기대값과의 차이를 곱한 것들의 합
이라고 보면 된다.
986
공분산의 연산법칙987
공분산의 연산법칙
연산법칙
988
통계
Moon Yong Joon
989
통계학990
통계
통계학(統計學, statistics)은 수량적 비교를 기초로
하여, 많은 사실을 통계적으로 관찰하고 처리하는 방
법을 연구하는 학문이다.
991
통계학의 종류
기술통계학(descriptive statistics)는 모집단 전체
혹은 표본으로부터 얻은 데이터에 대한 숫자 요약9
평균, 분산 등)이나 그래표 요약을 통해 데이터가 가
진 정보를 정리하는 이론이나 방법론
추론통계학(inferential statistics)는 표본으로부터
얻은 정보를 이용해서 모집단의 특성(모
수:parameter)을 추론(추정, 검정)하거나 변수들간
의 적절한 함수관계(modeling)의 진위 여부를 판단
하는 일련의 과정에 관한 이론과 방법론
992
확률과 통계 비교
확률적 관점 : 이미 알고 있는 모집단에서 어떤 사
건이 일어날 확률에 관심이 있다.
통계적 관점 : 표본에서 얻은 정보를 이용하여 미
지의 모집단을 미루어 짐작하는 추론에 관심이
있다.
993
통계 분석994
통계 분석
연구 목적이 설정되면 그에 맞는 통계적 가설이나 모형을
설정하고, 관련 데이터 수집하여 정리하고 분석하여, 가
설 혹은 모형의 유의성을 검정하는게 통계 분석
995
통계 (Statistics)의 역할
모집단
);( xf
표본
1X
2X
nX
1x
2x

nx

),,,(ˆ
211 nxxx  
데이터 수집 ; sampling
확률이론
확률
확률변수
확률분포
통계적 추론 데이터 처리
척도 계산, 분포 유추모수 추정, 가설검정
기술 통계학추리 통계학
기초
제공
Θ =μ,σ,‥
p, ‥
),,,(ˆ 212 nxxxp 
:
?0 
?0pp 
:
전수조사
전수 조사(全數調査)는 대상이 되는 통계 집단의
단위를 하나하나 전부 조사하는 관찰 방법으로,
전부 조사(全部調査)라고도 부른다.
996
통계 주요 기호997
평균 표준편차 분산 기호
평균 표준편차 분산 기호
998
모집단과 표본의 관계
모집단에서 표본을 뽑고 이를 통해 모집단의 특
성을 예축
999
모집단과 표본의 관계
모집단
표본
Data 추정
2
,
2
, sx
기술통계학
통계자료를 적절하게 그림, 도표 또
는 수치로 요약하고 그 특성을 기술
하는 方法論
추리통계학
모집단에서 뽑은 표본을 통하여
모집단의 특성을 예축 또는 추축
하는 方法論
모집단과 표본의 산식관계
모집단과 표본집단에 대한 산식 관계
100
0
통계 데이터의 정리
Moon Yong Joon
1001
모집단1002
모집단
모집단(母集團, population or universe)이란 정
보를 얻고자 하는 관심 대상의 전체집합을 말한
다.
모집단은 우리가 무엇을 알려고 하느냐에 따라
다르게 정의되기 때문에 모집단을 명확하게 정의
하는 것은 매우 중요하다.
100
3
표본1004
표본
표본(sample)은 모집단(population)의 부분집합
이다. 전형적으로, 모집단은 매우 크며, 모집단의
모든 값에 대해 전수조사(census)나 전부 조사
(complete enumeration)을 하는 것은 실용적이
지 않거나 불가능하다.
100
5
표집 :sampling
표본은 다룰 수 있을만한 크기의 부분 집합을 나
타낸다. 표본이 얻어지면 모집단으로부터 얻은
표본에 대해 추론(inference) 또는 외삽법
(extrapolation)을 하기 위하여 통계적 계산이 수
행된다. 표본으로부터 이러한 정보를 얻기 위한
과정(process)을 표집(sampling)이라고 한다.
1006
모수의 추론1007
모수
모수(parameter) : 모집단의 특성을 나타내는 양
적인 값으로 고유한 상수로 나타낸다.
1008
통계량
통계량(Statistic)은 표본으로부터 계산되는 표본
의 튻어값, 관축가능한 확률변수들의 실수값 함
수로 통계량은 확률변수
1009
표본분포
표본분포(Sampling Distribution)는 한 모집단에
서 같은 크기로 뽑을 수 있는 모든 표본에서 통계
량을 계산할 때 이 통계량이 이루는 확률분포
101
0
신뢰수준
신뢰수준
어떤 모수가 신뢰구간에 속할 확률
추정 구간에 그 모집단 특성값의 참값이 존재할 확률
구간 추정량이 모집단의 모수를 포함하게 될 확률
범위: 0% ~ 100%가 가능
보통 95%를 사용함
1011
신뢰구간
신뢰구간
신뢰수준의 확률로 모평균을 포함하는 구간
모수가 어느 범위 안에 있는지를 확률적으로 보여주
는 방법
P(U<θ<V)=0.95P(U<θ<V)=0.95
→ 신뢰구간: U ~ V→ 신뢰수준: 95%
1012
모수의 추정
추정(estimation) : 미지의 모수의 값이 얼마인지,
또는 어떤 범위내에 있는지 표본결과로 부터 추
축하는 것
101
3
가설검증
가설의 검정(test of hypotheses) : 모수의 값의 범
위를 규정하는 두개의 가설을 세우고, 이들 중 어느
것이 참인지를 표본의 결과로 부터 판단하는 것
1. 자연, 사회 현상을 관찰하여 이론을 세운다.(가설)
2. 실험, 조사를 통해 실제 현상을 관찰한다. (표본 추출)
3. 실제 관찰 결과가 이론에서 예축되는 것과 부합하는지
판단한다.(가설 검정)
4. 부합되면 1번의 이론을 사실로 판단하고, 아니면 탐구
를 반복한다.
101
4
통계 변수1015
수리적 통계 변수
이산형 변수 (discrete variable) : 남/녀, 자동차
종류 등과 같이 연속성이 없는 변수
연속형 변수 (continuous variable) : 키, 몸무게
등 실수와 같이 쪼게면 쪼겔수록 무한히 쪼게지
는 연속된 변수
101
6
데이터 분석적 통계 변수
축정형변수(metric) : 셀 수 있거나 축정 가능한
특성을 축정한 변수
분류형/범부형 변수(non-metric) : 개체를 분류
하기 위해 축정된 변수
명목형(nominal) : 범주의 크기 순서가 없는 경우
순서형(ordinal) : 범주의 크기 순서가 있는 경우
1017
데이터의 정리1018
도수분포표 (frequency table)
도수분포표 (frequency table) : 빈도수 분포표라
고도 하는데, 연속형 변수의 경우 히스토그램 처
럼 구간을 나눠서 그래프가 아니라 테이블로 표
현한 거나, 이산형 변수의 경우 각 변수의 값을 테
이블로 표현한 것을 도수 분포표 라고 한다
1019
도수분포표 : 그리는 단계
1. 관축치 중 최대값과 최소값을 찾는다.
2. 최대값과 최소값의 차이, 즉 범위를 구한다.
3. 몇 개의 구간으로 나눌 것이지 결정한다
(대략 6개-14개).
4. 구간이 중복되지 않도록 범위를 정한다.
5. 각 구간에 속하는 관축치의 수를 세어
도수를 구한다.
1020
도수분포표의 평균
각 계급값과 도수를 곱해서 총합을 구하고 도수
의 총합으로 나누면 평균이 나옴
1021
히스토그램
히스토 그램 : 연속형 변수는 히스토그램을 이용
하여 표현이 가능하다. 히스토그램이란, 연속된
변수의 X축을 일정 구간으로 나눠서, (5씩) 그 구
간에 들어가는 데이터를 표현하는 방법으로, 키
를 예를 들면 160~170,170~180에 각각 몇 명
이 있는지 그래프로 나타내면 히스토 그램이라고
한다.
1022
히스토그램 형태의 특징
도수분포표에 대한 히스토그램 그래프
1023
중심위치의 척도
Moon Yong Joon
1024
평균 산식1025
산출평균: arithmetic mean
주어진 값들을 더해서 총 개수로 나누는 값
1026
기하평균: geometric mean
복수개의 수치의 곱을 수치의 개수로 제곱근을 취해서 산
출되는 평균값
- 인구성장률, 투자이률 등 성장률 평균 산출시 사용
1027
조화평균
수학에서 조화 평균(調和平均)은 주어진 수들의
역수의 산술 평균의 역수, 평균적인 변화율을 구
할 때에 주로 사용된다.
실수 a1, ..., an이 주어졌을 때, 조화 평균 H는
1028
중앙값1029
중앙값: median
중앙에 위치하는 값은 어떤 주어진 값들을 크기
의 순서대로 정렬했을 때 가장 중앙에 위치하는
값
n개의 값이 주어질 때
 n이 홀수이면 (n+1)/2 번째 값
 n이 짝수이면 n/2 번째 값과 n/2+1번째 값의
평균
1030
최빈값1031
최빈값: mode
가장 많이 관축되는 수는 주어진 값 중에서 가장
자주 나오는 값
{1,2,3,4,4,4,5} 주어질 때
 최빈값은 4이다
1032
평균/중간값/최빈값 예시1033
평균/중간값/최빈값 : statistics
평균/중간값/최빈값 구하기
1034
평균/중간값/최빈값 : numpy
평균/중간값/최빈값 구하기, scipy.stats 내의
mode 연산으로 최빈값을 찾아야 함
1035
산포/ 산포의 축도
Moon Yong Joon
1036
산포1037
산포
산포는 데이터가 흩어진 정도를 나타내는 것
분산,
표준편차,
범위,
사분위수범위
...
1038
산포의 척도
산포의 척도(Measure of dispersion) : 데이터가
흩어진 정도를 수치로서 축정하는 것으로 분산,
표준편차, 범위, 사분위범위 등이 많이 사용됨
1039
산포의 척도 :
사분위수와 범위
Moon Yong Joon
1040
사분위수1041
사분위수
데이터 표본을 4개의 동일한 부분으로 나눈 값
1사분위수 2사분위수 3사분위수 4사분위수
중앙값
1042
그래프
범위1043
범위
범위(range)
1044
산포의 척도 :
분산 기초
Moon Yong Joon
1045
분산 정의1046
분산
평균을 중심으로 자료의 흩어진 정도가 어느 정
도인지를 축정하는 것이며 평균에서 얼마나 벗어
났는지를 나타내는 것이다.
모분산과 표준분산이 있다.
1047
모분산 : population variance
분산은 편차(값 – 평균)을 제곱해서 n(전체 개수)
로 나누어서 값을 구함. 전체집단이라 가정할 경
우 계산
1048
표본분산 : variance
분산은 편차(값 – 평균)을 제곱해서 n-1(전체 개
수)로 나누어서 값을 구함. 전체 중에 일부인 표
본공간이라 가정할 경우 계산
1049
분산 : statistics1050
pvariance
평균에서 얼마나 떨어져 있는지 구하기
1051
variance
평균에서 얼마나 떨어져 있는지 구하기
1052
variance/pvariance
평균에서 얼마나 떨어져 있는지 구하기
1053
분산 :numpy1054
variance
Numpy.var는 sta.pvariance와 동일한 처리
1055
산포의 척도 :
표준편차 기초
Moon Yong Joon
1056
편차1057
편차
통계학에서 편차(deviation)는 관축값과 평균의 차이
를 말한다. 편차점수라고도 한다.
어떤 변인 y에서 특정 사례의 편차 d를 다음과 같이
나타낼 수 있다.
편차는 양수일수도 있고 음수일 수 있으며, 이는 평
균보다 크거나 작음을 나타낸다. 값의 크기는 관축값
이 평균으로부터 얼마나 떨어져 있는가를 나타낸다.
편차는 오류 또는 잔차라고 할 수 있다. 모집단 평균
에서의 편차는 오류이며, 표집 평균에서의 편차는 잔
차이다..
1058
편차의 특징
편차의 특징
1059
표준편차1060
Standard deviation
variance에 대한 표준편차
1061
표준편차:statistics1062
pstdev
pvariance에 대한 표준편차
1063
stdev
variance에 대한 표준편차
1064
stdev/pstdev
variance/pvariance에 대한 표준편차
1065
표준편차 : numpy1066
std
variance에 대한 표준편차이며
statistics.pstdev와 동일한 결과
1067
산포의 척도 :
변동계수
Moon Yong Joon
1068
변동계수1069
변동계수
변동계수(Coefficient of Variation)은 분포의 퍼
짐의 정도를 비교하게 해준다
자료 단위가 다르고, 표준편차와 평균이 상당히
다른 두 분포가 있을 때 그 두분포의 산포를 타당
하게 비교하기 위해 사용
1070
산포의 척도 :
왜도와 첨도
Moon Yong Joon
1071
왜도와 첨도1072
왜도
왜도(歪度; skewness)란, 데 이터의 분포형태가
기울어진 정도를 의미한다.
분포의 형태는 좌우대칭이면 왜도는 0이 되고, 왜
도가 + 의 값을 가지면 오른쪽으로 긴 꼬리를 가
지는 형태, -의 값을 가지면 왼쪽으로 긴 꼬리를
가지는 형태를 보인다.
1073
첨도
첨도(尖度;kurtosis)란 분포가 평균치 주변에 몰
려 있는 형태인지 멀리 퍼져 있는 형태인지 그 뾰
족한 정도를 의미한다.
표준정규분포의 첨도계수는 0이며, 0보다 크면
표준정규분포에 비해 더 뾰족하게 몰려 있는 형
태를 가지고, 0보다 작으면 보다 넓게 퍼져 있는
형태의 데이터라고 할 수 있다.
1074
두개 이상의
연속 변수 정리
- 공분산 기초
Moon Yong Joon
1075
공분산(Covariance)1076
공분산(Covariance)
공분산이라 하면 분산과는 다르게 하나의 변수
가 아닌 두 변수 사이의 관계를 나타냄
1077
공분산 : numpy
두 변량간의 공분산을 구하는 함수인 cov를 이
용 파라미터에 ddof =0 을 인수를 넣고 처리
1078
두개 이상의
연속 변수 정리
- 상관계수 기초
Moon Yong Joon
1079
상관계수1080
상관계수
공분산이라 하면 분산과는 다르게 하나의 변수가 아
닌 두 변수 사이의 관계를 나타냄
-1<= r <= 1 사이의 값
1081
상관관계 정도
-1<= r <= 1 사이의 값으로 상관관계 정도를
나타냄
1082
상관계수 : numpy
두 변량간의 상관 관계를 나타내는 계수
python은 기본이 n으로 처리되므로 (n-1)로 처리하
려면 ddof =1 을 인수로 넣어야 n-1로 처리된다.
1083

python 수학이해하기