본문 바로가기

python 기초강의

머신러닝을 공부 하기 위한 최소한의 파이썬 문법 시리즈 #1

머신러닝을 공부 하기 위한 최소한의 파이썬 문법 시리즈 #1

머신러닝을 공부 하기 위한 최소한의 파이썬 문법 시리즈 #1

안녕하세요.
머신러닝을 공부하기 앞서, 다들 파이썬에 대해서 많은 관심이 있으실겁니다.
그러닌깐, 지금 이 글도 보고 계시겠죠?

파이썬에는 정말 많은 패키지들이 있어서 그 모든 기능들을 다 알고 계시는 분은 없을겁니다.
이번 시간은 그 수많은 파이썬 기능과 문법들 가운데, 머신러닝을 하기 위해서 꼭 알고 시작 해야 하는 기본 문법들을 정리해보겠습니다.

단순히 이것만 가지고 머신러닝을 할 수 있다, 이건 절~~~대 아닙니다.
우선 이정도는 알고 우리 함께 파이썬 머신러닝을 공부하자는 이야기 입니다.

자, 그럼 시작해 보겠습니다!

import

import는 어떤 라이브러리를 불러오는 명령 입니다.
파이썬을 사용 할때는 기본적인 기능들 외에도 pandas 라던지, 머신러닝을 하려면 tensorflow등의 라이브러리를 불러와서 사용을 해야 하는데, 해당 라이브러리를 쓰기 전에 꼭 import를 해야 하는것 이죠.

import pandas as pd
import tensorflow as tf

위 import 예문은 pandas와 tensorflow 라이브러리를 가져오는 예문 입니다.
뒤에 붙어있는 as pd, as tf는 별칭 입니다.
파이썬 코드안에서 라이브러리를 호출할때마다 이름을 써줘야 하는데, pandas, tensorflow라고 매번 입력하기 길기 때문에 alias라는 별칭을 붙여준것 입니다.

위 코드를 직접 실행 해봤습니다.

tensorflow 라이브러리 에러

위와 같이 에러가 발생했습니다. 제 PC에는 아직 tensorflow 라이브러리가 설치되어 있지 않아 발생한 에러 입니다.
이럴때는 tensorflow를 설치해주면 되겠죠.
아래와 같이 명령어를 실행 하시면 됩니다.

 

 

 

pip install tensorflow

tensorflow 설치 방법

위와같이 설치가 진행 되는것을 확인 할 수 있습니다.
그리고나서 다시 import를 진행하면 별다른 에러가 발생 하지 않습니다.

그리고, tensorflow에는 여러가지 기능들이 있는데, 그 기능들은 폴더구조와 같이 설정이 되어 있습니다.
예를 들어 볼께요.

import pandas as pd
import tensorflow as tf

print(tf.keras.layers.Dense(10))

from tensorflow.keras.layers import Dense

print(Dense(10))

위와 같이 코드를 작성 했을때, tf.keras.layers.Dense(10) 라는 명령이 중간에 보이실 겁니다.
tf로 정의된 tensorflow의 하위에 keras, 그리고 또 하위에 layers, 또 그 하위에 있는 Dense 라는 모듈에 접근하기 위해서는 저렇게 길게 명령어를 입력 해야 하는데, Dense를 자주 써야 한다면 그 아래 있는
from tensorflow.keras.layers import Dense 코드와 같이 정의를 해주면 Dense만 썼을때 모듈이 바로 실행 되게 해주는것 이죠.

위 두 코드의 결과 값은 아래와 같이 똑같습니다.

Dense 예제

Type

다음은 Type 입니다.
Type 이란 데이터형태를 이야기 합니다. 이미 DB나 다른 프로그램 랭귀지를 접해보신 분들이라면 쉽게 이해 할 수 있을겁니다. 여기서는 딱! 세가지만 기억하고 가겠습니다.

문자열

문자열은 지금 읽고계신 이 글과 같은 텍스트 형태를 이야기 합니다. 문자열 Type을 선언 하기 위해서는 아래 예문과 같이 홑따옴표나 쌍따옴표로 감싸줘서 정의 하시면 됩니다.

 

 

 

text = 'Korea'
text2 = "대한민국"

print(text)
print(text2)

print(type(text))
print(type(text2))

위 코드와 같이 입력을 하시면, text와 text2의 변수에 문자열이 저장되고, 각각의 type을 확인 할 수 있습니다.

문자열 Type

각각 문자열 변수값이 출력이 되었고, type이 str, 즉 문자열이라는것도 출력이 된 것을 확인 할 수 있습니다.

정수형

다음은 정수형 Type입니다. 정수형이란 숫자를 이야기 하는것 이겠죠.
정수형 숫자의 변수저장과, 출력, type까지 출력해 보겠습니다.
아래와 같이 코드를 작성 해보겠습니다.

int1 = 100
int2 = 200

print(int1)
print(int2)

print(type(int1))
print(type(int2))

그 결과는 아래와 같이 출력이 되는것을 확인 할 수 있습니다.

정수형 Type

실수형

마지막으로는 실수형 Type입니다.
코드를 보시겠습니다.

 

 

 

float1 = 3.1415
float2 = 1.234

print(float1)
print(float2)

print(type(float1))
print(type(float2))

마찬가지로 결과는 아래와 같이 출력되는것을 확인 할 수 있습니다.

실수형 Type

정수형 to 실수형

자, 그럼 정수형에서 실수형으로 Type을 변환 할 수는 없을까요?
3이라는 정수형 Type을 실수형 Type으로 변환하는것을 해보겠습니다.
아래와 같이 코드를 작성 합니다.

num = 3
print(num)
print(type(num))

num = num / 1.0
print(num)
print(type(num))

위 코드는 우선 num에 3을 저장하고, 그 값을 출력 후 Type을 출력합니다.
그리고 다시 num에다가 1.0 을 나눈 값을 저장 합니다.
그러면 이젠 num은 3이라고 출력 되는것이 아니라, 3.0이라고 출력이 되고, 그 Type이 float로 바뀐것을 확인 할 수 있습니다.

정수형에서 실수형 형변환

실수형 to 정수형

그럼 이번에서 실수형에서 정수형으로 변환하는 예제를 보겠습니다.
아래와 같이 코드를 입력 하세요.

num = 5.1515
print(num)
print(type(num))

num = int(num)
print(num)
print(type(num))

위 코드는 아까와 반대입니다.
num이라는 변수에 5.1515 라는 실수형 데이터를 입력 후, 데이터와 Type을 출력합니다.
그리고, num에 int(num) 이라고 강제로 형변환 함수를 사용 합니다.
다시 num과 num의 Type을 출력 하면 아래와 같이 출력 되는 것을 확인 할 수 있습니다.

실수형에서 정수형으로 형변환

List

다음은 리스트 입니다.
리스트는 1차원 리스트와 2차원 리스트를 생성 할 수 있습니다.
아래와 같이 1차원 리스트, 2차원 리스트를 생성 하는 코드를 실행해 보세요.

list_1 = [1,2,3,4,5,6,7,8,9,10]
print(list_1)
print(type(list_1))

list_2 = [[1,2,3,4,5,6,7,8,9,10], [10,20,30,40,50,60,70,80,90,100]]
print(list_2)
print(type(list_2))

위 코드에서 list_1은 1차원 리스트, list_2는 2차원 리스트를 이야기 합니다.
각각 데이터를 정의 후 출력하고, 그 Type이 리스트가 맞는지 출력을 해보도록 하겠습니다.

리스트

리스트 인덱스

리스트에서 인덱스를 이용하여 색인을 할 수 있습니다.
위에서 만든 list_1과 list_2에서 각각의 값을 출력해 보겠습니다.

 

 

 

print(list_1[0])
print(list_1[3])

print(list_1[-1])
print(list_1[-2])

print(list_2[0][0])
print(list_2[1][3])

자, 위 코드를 보시면 list_1[0] 이라는 라인이 보이실겁니다. 이건, list_1의 0번지를 불러오라는 의미 입니다.
그럼 list_1[3]은 3번지를 이야기 하는것 이겠죠.

또, 아래쪽 2줄을 보시면 list_2[0][0] 과 list_2[1][3]이 보이실 겁니다.
list_2는 2차원 리스트이기 때문에 번지도 2개를 입력하게 되어 있죠.

이 번지수는 아래 그림을 보시면 이해가 편하실 겁니다.

리스트 인덱스 번지

빨간색 숫자가 번지수를 의미하고, 검은색 숫자는 데이터를 의미 합니다.
저기 있는 빨간색 숫자, 번지값을 입력하면 데이터가 출력 되는 것 입니다.

위 코드의 결과를 보시겠습니다.

리스트 인덱스 색인 결과

슬라이싱

다음은 리스트의 슬라이싱에 대해서 보겠습니다.
리스트에 번지수를 입력하여 특정 범위를 출력할 수 있었는데, 이번에도 번지수를 이용해서 특정 구간을 출력하는것을 해보도록 하겠습니다.
아래와 같은 코드를 작성 합니다.

 

 

 

print(list_1[2:4])
print(list_1[:4])
print(list_1[6:])

첫번째 라인부터 설명을 하자면, list_1[2:4]는 2번지부터 4번지까지 출력을 하라는 의미 입니다. 이때 4번지는 포함 되지 않습니다.
그리고 두번째 라인 역시 list_1[:4] 라고 입력되어 있는데, 처음부터 4번지까지 출력하라는 의미 입니다. 물론 이때도 4번지는 포함 되지 않습니다.
마지막 라인은 list_1[6:0] 이라고 되어 있죠. 이건 6번지 부터 마지막번지 까지 모두 출력 하라는 의미 입니다.
결과는 아래와 같습니다.

리스트 슬라이싱

자, 오늘 이렇게 import, Type, List에 대해서 알아보았습니다.
다음 시간에 이어서 진행 하도록 하겠습니다.

감사합니다.

by.sTricky