πŸ“š μŠ€ν„°λ””/파이썬 μŠ€ν„°λ”” κ°•μ˜μžλ£Œ

[2νŒ€/κΉ€μ„Έμ—°] 2μ°¨μ‹œ 파이썬 μŠ€ν„°λ”” - μžλ£Œν˜•

μ•Œ 수 μ—†λŠ” μ‚¬μš©μž 2023. 3. 16. 21:37

2μ°¨μ‹œ_μžλ£Œν˜•_κ°•μ˜μ•ˆ.pdf
2.10MB
2μ°¨μ‹œ_μžλ£Œν˜•_과제.pdf
0.33MB

2μ£Όμ°¨ μžλ£Œν˜•

참고자료: 데이터 과학을 μœ„ν•œ 파이썬 ν”„λ‘œκ·Έλž˜λ°, 점프 투 파이썬

λ³€μˆ˜μ™€ λ©”λͺ¨λ¦¬

  • λ³€μˆ˜
    :ν”„λ‘œκ·Έλž˜λ°μ—μ„œλŠ” μ–΄λ–€ 값을 μ €μž₯ν•˜λŠ” μž₯μ†Œ
    :μˆ˜ν•™μ—μ„œμ˜ λ³€μˆ˜μ™€ λΉ„μŠ·ν•˜μ§€λ§Œ μ•½κ°„ 닀름

  • λ³€μˆ˜λͺ…λ‹€λ₯Έ μ‚¬λžŒλ„ 이해할 수 μžˆλŠ” λ³€μˆ˜λͺ…을 μ •ν•˜λŠ” 것이 μ’‹μŒ:νŠΉλ³„ν•œ μ˜λ―Έκ°€ μžˆλŠ” μ˜ˆμ•½μ–΄ μ‚¬μš© μ•ˆλ¨
    :λŒ€μ†Œλ¬Έμž ꡬ뢄 주의 professer Professer
    :μ•ŒνŒŒλ²³,숫자,밑쀄(_) μ‚¬μš©, ν•œκΈ€X
  • μ˜ˆμ‹œ  
  • professer = 'Yerim Choi' a = 3 b = 7 month_price = 32460 birth_00 = 1126 birth_00 = '011126'
  • professerμ΄λΌλŠ” λ³€μˆ˜μ— ‘yerim Choi’λΌλŠ” λ¬Έμžλ°μ΄ν„°λ₯Ό ν• λ‹Ή(λ³€μˆ˜μ— 데이터λ₯Ό λ„£λŠ” κ³Όμ •)함


데이터 νƒ€μž…

  • μˆ«μžν˜•
    :μ •μˆ˜ν˜•(int) - 0, 17 ,-149
    :μ‹€μˆ˜ν˜•(float) - 1.2, 3.49
    :8μ§„μˆ˜ - 0o177
    :16μ§„μˆ˜ - 0x8ff, 0xABC
    <<사칙연산, μ—°μ‚°μž(제곱승), //μ—°μ‚°μž(λͺ«), %μ—°μ‚°μž(λ‚˜λ¨Έμ§€), 증가(κ°μ†Œ) μ—°μ‚°>>

**μ—°μ‚°μž(제곱승)
//μ—°μ‚°μž(λͺ«)와 %μ—°μ‚°μž(λ‚˜λ¨Έμ§€)

  • λ¬Έμžμ—΄ μžλ£Œν˜•
    :값이 문자둜 좜λ ₯λ˜λŠ” μžλ£Œν˜•μœΌλ‘œ νŒŒμ΄μ¬μ—μ„œ 보톡 λ”°μ˜΄ν‘œμ— λ“€μ–΄κ°„ 정보λ₯Ό 의미


    μ—¬λŸ¬μ€„μΈ λ¬Έμžμ—΄μ„ λ³€μˆ˜μ— λŒ€μž…ν•˜κ³  싢을 λ•Œ (쀄 λ°”κΎΈκΈ°, νƒ­ λ°”κΎΈκΈ°)


    πŸ’‘ λ¬Έμžμ—΄ μ—°μ‚°ν•˜κΈ°, λ¬Έμžμ—΄ 인덱싱과 μŠ¬λΌμ΄μ‹±, λ¬Έμžμ—΄ ν¬λ§€νŒ…, λ¬Έμžμ—΄ κ΄€λ ¨ ν•¨μˆ˜


    -λ¬Έμžμ—΄ μ—°μ‚°ν•˜κΈ°: λ¬Έμžμ—΄μ€ λ”ν•΄μ„œ μ—°κ²°ν•˜κ±°λ‚˜, κ³±ν•œλ§ŒνΌ 좜λ ₯ν•  수 있음

    -λ¬Έμžμ—΄ 인덱싱: μΈλ±μŠ€λŠ” κ°€λ¦¬ν‚¨λ‹€λŠ” 의미, λ¬Έμžμ—΄μ— 번호λ₯Ό 맀겨 νŠΉμ •ν•œ 값을 뽑아냄

    -λ¬Έμžμ—΄ μŠ¬λΌμ΄μ‹±: μž˜λΌλ‚Έλ‹€λŠ” 의미둜 λ‹¨μˆœνžˆ ν•œ λ¬Έμžκ°€ μ•„λ‹Œ 단어λ₯Ό 뽑아냄

    -λ¬Έμžμ—΄ ν¬λ§€νŒ…: λ¬Έμžμ—΄ μ•ˆμ˜ νŠΉμ •ν•œ 값을 λ°”κΏ”μ•Ό ν•  경우 μ‚¬μš©ν•¨

    -λ¬Έμžμ—΄ κ΄€λ ¨ ν•¨μˆ˜: μ†Œλ¬Έμž<>λŒ€λ¬Έμž(upper,lower), κ³΅λ°±μ§€μš°κΈ°(strip), λ°”κΎΈκΈ°(replace),λ‚˜λˆ„κΈ°(split)

  • 뢈린 μžλ£Œν˜•
    :참은 True μ»΄ν“¨ν„°μ—μ„œ 1, 거짓은 False μ»΄ν“¨ν„°μ—μ„œ 2좜λ ₯값은 True
    :λ…Όλ¦¬ν˜•μ΄λΌκ³ λ„ ν•˜λ©°, μ°Έκ³Ό 거짓을 ν‘œν˜„ν•  λ•Œ μ‚¬μš©

    print(1==1)
    좜λ ₯값은 True

  • μ½”λ“œ
a = 1
b = 1
print(a, b)
11


a = 1.5
b = 3.5
print(a, b)
1.5 3.5


a = "ABC"
b = "101010"
print (a, b)
ABC 101010


a = True
b = False
print(a, b)
True False​

μžλ£Œν˜• λ³€ν™˜ 및 μžλ£Œν˜• 확인

:λ‹€μ–‘ν•œ νƒ€μž…μ˜ μžλ£Œν˜•μ„ 자유둭게 λ³€ν™˜ν•˜μ—¬ μ‚¬μš©ν•΄μ•Όν•¨

ex) μ‚¬μ΄νŠΈμ— λ‘œκ·ΈμΈν•  λ•Œ 숫자둜 μž…λ ₯해야함, but μ»΄ν“¨ν„°λŠ” λ¬Έμžμ—΄λ‘œ μΈμ‹ν•˜λŠ” κ²½μš°κ°€ 많음

float( )ν•¨μˆ˜, int( )ν•¨μˆ˜λ₯Ό μ‚¬μš©

 

- μ •μˆ˜ν˜•κ³Ό μ‹€μˆ˜ν˜• κ°„ λ³€ν™˜

float( )ν•¨μˆ˜ (μ •μˆ˜ν˜• > μ‹€μˆ˜ν˜•)

a = 10
print(a)
10
# aλ³€μˆ˜μ— μ •μˆ˜ 데이터 10 ν• λ‹Ή
# aκ°€ μ •μˆ˜ν˜•μœΌλ‘œ 좜λ ₯

a = float(10)
print(a)
10.0

#aλ₯Ό μ‹€μˆ˜ν˜•μœΌλ‘œ λ³€ν™˜

 

int( )ν•¨μˆ˜ (μ‹€μˆ˜ν˜• > μ •μˆ˜ν˜•)

a = int(10.7)
b = int(10.3)

print(a)
10

print(b)
10
#ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μ†Œμˆ˜μ  μ΄ν•˜λŠ” λ‚΄λ¦Ό

 

- μˆ«μžν˜•κ³Ό λ¬Έμžν˜• κ°„ λ³€ν™˜

a = '76.3'
b = float(a)

print(a)
76.3

print(b)
76.3

print (a + b)
Traceback (most recent call last):
File "<stdin>", line 1, in ‹module>
TypeError: can only concatenate str (nor "float") to str
a = float(a)
b = a
print(a + b)
152.6

a = str(a)
b = str(b)
print(a + b)   
76.376.3

-μžλ£Œν˜• ν™•μΈν•˜κΈ°

type( )ν•¨μˆ˜ μ‚¬μš©

a = int(10.3)
type(a)
<class 'int’>

b = float(10.3)
type(b)
<class 'float'>

c = str(10.3)
type(c)
<class 'str’>

리슀트

:κ°€μž₯ 많이 μ‚¬μš©ν•˜λŠ” μžλ£Œν˜•μœΌλ‘œ 배열이라고 함 (ν”„λ‘œκ·Έλž˜λ°> λ°°μ—΄, 파이썬 > 리슀트)

ex)100λͺ…μ˜ μ‹œν—˜μ μˆ˜λ₯Ό μž…λ ₯ν• λ•Œ λ³€μˆ˜λ₯Ό 100개 λ§Œλ“œλŠ” 것은 λ²ˆκ±°λ‘œμ›€

  • κ°œλ…
    -ν•˜λ‚˜μ˜ μžλ£Œν˜•λ§Œ μ €μž₯ν•˜μ§€ μ•Šκ³ , μ •μˆ˜ν˜•,μ‹€μˆ˜ν˜• λ‹€μ–‘ν•œ μžλ£Œν˜• 포함 κ°€λŠ₯
    -ν•˜λ‚˜μ˜ λ³€μˆ˜μ— μ—¬λŸ¬ 값을 μ €μž₯ν•˜λŠ” μžλ£Œν˜•(=μ‹œν€€μŠ€ μžλ£Œν˜•: μ—¬λŸ¬ 자료λ₯Ό μˆœμ„œλŒ€λ‘œ λ„£μŒ)

 

 

인덱싱과 μŠ¬λΌμ΄μ‹±
-인덱싱
:λ¦¬μŠ€νŠΈμ— μ €μž₯λ˜μ–΄ μžˆλŠ” 값에 μ ‘κ·Όν•˜κΈ° μœ„ν•΄ μƒλŒ€μ μΈ μ£Όμ†Œλ₯Ό μ‚¬μš©ν•˜λŠ” 것


-μŠ¬λΌμ΄μ‹±
:리슀트의 인덱슀 κΈ°λŠ₯을 μ‚¬μš©ν•˜μ—¬ 전체 λ¦¬μŠ€νŠΈμ—μ„œ 일뢀λ₯Ό μž˜λΌλ‚΄μ–΄ μ‚¬μš©ν•˜λŠ” 것

기본문법: λ³€μˆ˜λͺ…[μ‹œμž‘ 인덱슀:λ§ˆμ§€λ§‰ 인덱슀]

-λ¦¬λ²„μŠ€ 인덱슀
:인덱슀λ₯Ό 첫번째 값이 μ•„λ‹Œ λ§ˆμ§€λ§‰ κ°’λΆ€ν„° μ‹œμž‘ν•˜λŠ” 방식

cities = ['μ„œμšΈ', 'λΆ€μ‚°', '인천', 'λŒ€κ΅¬', 'λŒ€μ „', 'κ΄‘μ£Ό', 'μšΈμ‚°', 'μˆ˜μ›']
cities[-8:] 
['μ„œμšΈ', 'λΆ€μ‚°', '인천', 'λŒ€κ΅¬', 'λŒ€μ „', 'κ΄‘μ£Ό', 'μšΈμ‚°', 'μˆ˜μ›']



-인덱슀 λ²”μœ„λ₯Ό λ„˜μ–΄κ°€λŠ” μŠ¬λΌμ΄μ‹±
:μŠ¬λΌμ΄μ‹±μ„ ν•  λ•Œ 인덱슀의 첫 번째 κ°’μ΄λ‚˜ λ§ˆμ§€λ§‰ 값이 비어도 잘 μž‘λ™ν•¨
:μ½œλ‘ μ„ λ„£κ±°λ‚˜ λ²”μœ„λ₯Ό λ„˜μ–΄κ°€λ©΄ λͺ¨λ“ κ°’ λ°˜ν™˜

cities = ['μ„œμšΈ', 'λΆ€μ‚°', '인천', 'λŒ€κ΅¬', 'λŒ€μ „', 'κ΄‘μ£Ό', 'μšΈμ‚°', 'μˆ˜μ›']
print(cities[:])       # cities λ³€μˆ˜μ˜ μ²˜μŒλΆ€ν„° λκΉŒμ§€
['μ„œμšΈ', 'λΆ€μ‚°', '인천', 'λŒ€κ΅¬', 'λŒ€μ „', 'κ΄‘μ£Ό', 'μšΈμ‚°', 'μˆ˜μ›']
print(cities[-50:50])   # λ²”μœ„λ₯Ό λ„˜μ–΄κ°ˆ 경우 μžλ™μœΌλ‘œ μ΅œλŒ€ λ²”μœ„λ₯Ό 지정

['μ„œμšΈ', 'λΆ€μ‚°', '인천', 'λŒ€κ΅¬', 'λŒ€μ „', 'κ΄‘μ£Ό', 'μšΈμ‚°', 'μˆ˜μ›']

       -증가값 

cities = ['μ„œμšΈ', 'λΆ€μ‚°', '인천', 'λŒ€κ΅¬', 'λŒ€μ „', 'κ΄‘μ£Ό', 'μšΈμ‚°', 'μˆ˜μ›']
cities[::2]           #2μΉΈ λ‹¨μœ„λ‘œ
['μ„œμšΈ', '인천', 'λŒ€μ „', 'μšΈμ‚°']
cities[::-1]          #μ—­μœΌλ‘œμŠ¬λΌμ΄μ‹±
['μˆ˜μ›', 'μšΈμ‚°', 'κ΄‘μ£Ό', 'λŒ€μ „', 'λŒ€κ΅¬', '인천', 'λΆ€μ‚°', 'μ„œμšΈ']

기본문법: λ³€μˆ˜λͺ…[μ‹œμž‘ 인덱슀:λ§ˆμ§€λ§‰ 인덱슀:증가값]

 

리슀트 μΆ”κ°€, μ‚­μ œ 및 μž¬ν• λ‹Ή

 

-λ§μ…ˆμ—°μ‚°

colorl = ['red', 'blue', 'green']
color2 = ['orange', 'black', 'white']
print(colorl + color2)
['red', 'blue’, ’green', 'orange', 'black', 'white']

len(colorl)
3

total_color = colorl + color2
total_color
['red', 'blue’, ’green', 'orange', 'black', 'white']

 

-κ³±μ…ˆμ—°μ‚°

color1 * 2
['red', 'blue', 'green', 'red', 'blue', 'green']

 

 

 

-in μ—°μ‚° (포함 μ—¬λΆ€λ₯Ό 확인)

'blue' in color2
False
  •  
    color = ['red', 'blue', 'green']
    color[0] = 'orange'
    color
    ['orange', 'blue', 'green']
    
    del color[0]
    color
    ['blue', 'green']
    
  • # append() ν•¨μˆ˜ color = ['red', 'blue', 'green'] color.append('white') color ['red', 'blue', 'green', 'white'] # extend() ν•¨μˆ˜ color.extend(['black', 'purple']) color ['red', 'blue', 'green', 'white', 'black', 'purple'] # insert() ν•¨μˆ˜ color.insert(0, 'orange') color ['orange', 'red', 'blue', 'green', 'white', 'black', 'purple'] # remove() ν•¨μˆ˜ color.remove('red') color ['orange', 'blue', 'green', 'white', 'black', 'purple']
  • νŒ¨ν‚Ήκ³Ό μ–ΈνŒ¨ν‚Ή
    -νŒ¨ν‚Ή: ν•œ λ³€μˆ˜μ— μ—¬λŸ¬ 개의 데이터λ₯Ό ν• λ‹Ή
    -μ–ΈνŒ¨ν‚Ή: ν•œ λ³€μˆ˜μ— μ—¬λŸ¬ 개의 데이터가 λ“€μ–΄μžˆμ„ λ•Œ, 그것을 각각의 λ³€μˆ˜λ‘œ λ°˜ν™˜

    >리슀트의 κ°’κ³Ό ν• λ‹Ήν•˜λ €λŠ” κ°―μˆ˜κ°€ λ‹€λ₯΄λ©΄ μ—λŸ¬ λ°œμƒ
t = [1, 2, 3]          # 1, 2, 3을 λ³€μˆ˜ t에 νŒ¨ν‚Ή
a, b, c = t            # t에 μžˆλŠ” κ°’ 1, 2, 3을 λ³€μˆ˜ a, b, c에 μ–ΈνŒ¨ν‚Ή
print(t, a, b, c)
[1, 2, 3] 1 2 3
  • 이차원 리슀트
    kor_score = [49,79,20,100,80]
    math_score = [43,59,85,30,90]
    eng_score = [49,79,48,60,100]
    midterm_score = [kor_score, math_score, eng_score]
    print(midterm_score)
     [[49,79,20,100,80], [43,59,85,30,90],[49,79,48,60,100]]
    
    [0]은 ν–‰, [2]λŠ” 열을 μ˜λ―Έν•¨
    [0]은 kor_scoreλ₯Ό [2]λŠ” Cλ₯Ό μ˜λ―Έν•¨
    print(midterm_score[0][2]) 20

    -λ¦¬μŠ€νŠΈμ— λ©”λͺ¨λ¦¬ μ €μž₯
    :μ•ˆμ— κ°’ 자체λ₯Ό μ €μž₯ν•˜λŠ” ꡬ쑰가 μ•„λ‹ˆλΌ κ·Έ 값이 μœ„μΉ˜ν•œ λ©”λͺ¨λ¦¬ μ£Όμ†Œμ— μ£Όμ†Œκ°’μ„ μ €μž₯

  • λ©”λͺ¨λ¦¬ μ£Όμ†Œμ™€ κ°’μ˜ 차이
    a = 1
    b = 1
    a is b
    a == b
    
    νŒŒμ΄μ¬μ€ 인터프리터(μ•„λ‚˜μ½˜λ‹€)κ°€ ꡬ동될 λ•Œ, -5 ~ 256κΉŒμ§€
    μ •μˆ˜κ°’μ„ νŠΉμ • λ©”λͺ¨λ¦¬ μ£Όμ†Œμ— μ €μž₯-λ©”λͺ¨λ¦¬ μ €μž₯ꡬ쑰둜 μΈν•œ 리슀트의 νŠΉμ§•

  • μ‹€μŠ΅