[밑바닥부터 시작하는 딥러닝] 1. 헬로 파이썬

Yejin Kim·2022년 2월 8일
0

💡 파이썬(Python)이란?

  • 오픈 소스라 무료로 자유롭게 이용 가능
  • 자체의 뛰어난 성능에 넘파이(numpy)와 사이파이(SciPy)같은 수치 계산과 통계 처리를 다루는 탁월한 라이브러리가 더해져 데이터 과학 분야에서 널리 쓰임

✔️ 파이썬 활용하기

1. 산술 연산

>>> 1 - 2
-1
>>> 4 * 5
20
>>> 7 / 5![](https://velog.velcdn.com/images%2Fkyj93790%2Fpost%2F02d41013-8dce-4e03-8124-f75790c63603%2Fimage.png)![](https://velog.velcdn.com/images%2Fkyj93790%2Fpost%2F8d75637f-32b3-4d95-bffc-a2766d004bff%2Fimage.png)![](https://velog.velcdn.com/images%2Fkyj93790%2Fpost%2F57449729-55dd-4e36-95a7-ade7638bc1c0%2Fimage.png)
1.4
>>> 3 ** 2	# 거듭제곱
9

2. 자료형

자료형 : 데이터의 성질을 나타내는 것
ex) 정수, 실수, 문자열 등
파이썬에서는 type() 함수로 특정 데이터의 자료형을 알아볼 수 있음.

>>> type(10)
<class 'int'>
>>> type(2.718)
<class 'float'>
>>> type("hello")
<class 'str'>

3. 변수

파이썬은 동적 언어 ! 즉, 변수의 자료형을 상황에 맞게 자동으로 결정한다.

>>> x = 10		# 초기화
>>> print(x)	# x값 출력
10
>>> x = 100 	# 변수에 값 대입
>>> print(X)
100
>>> y = 3.14
>>> x * y
314.0
>>> type(x * y)
<class 'float'>

4. 리스트

인덱스와 슬라이싱(slicing) 기법을 통해 원하는 원소에 접근할 수 있다.

>>> a = [1, 2, 3, 4, 5]
>>> print(a)
[1, 2, 3, 4, 5]
>>> len(a)	# 리스트 길이 출력
5
>>> a[0]
1
>>> a[4]
5
>>> a[4] = 99
>>> print(a)
[1, 2, 3, 4, 99]

# slicing
>> a[0:2]	# 인덱스 0부터 2까지 얻기(2번째는 포함하지 않음)
[1, 2]
>>> a[1:]	# 인덱스 1부터 끝까지 얻기
[2, 3, 4, 99]
>>> a[:3]	# 처음부터 인덱스 3까지 얻기(3번째는 포함하지 않음)
[1, 2, 3]
>>> a[:-1]	# 처음부터 마지막 원소의 1개 앞까지 얻기
[1, 2, 3, 4]
>>> a[:-2]	# 처음부터 마지막 원소의 2개 앞까지 얻기
[1, 2, 3]

5. 딕셔너리

딕셔너리는 키(key)와 값(value)를 한쌍으로 저장한다.

>>> me = ['height':180]	# 딕셔너리 생성
>>> me['height']		# 원소 접근
162
>>> me['weight'] = 70	# 새 원소 추가
>>> print(me)
{'weight': 70, 'height': 180}

6. bool

bool이라는 자료형은 True(참)와 False(거짓)이라는 두 값 중 하나를 취한다.
and, or, not 연산자를 사용할 수 있음.

>>> hungry = True
>>> sleepy = False
>>> type(hungry)
<class 'bool'>
>>> not hungry
False
>>> hungry and sleepy
False
>>> hungry or sleepy
True

7. if 문

조건에 따른 처리는 if/else문 사용

>>> hungry = True
>>> if hungry:
...		print("I'm hungry")
...
I'm hungry
>>> hungry = False
>>> if hungry:
...		print("I'm hungry")
...	else:
...		print("I'm not hungry")
...		print("I'm sleepy")
...
I'm not hungry
I'm sleepy

8. for 문

>>> for i in[1, 2, 3]:
...		print(i)
...
1
2
3

9. 함수

특정 기능을 수행하는 일련의 명령들을 묶어 하나의 함수로 정의

>>> def hello:
...		print("Hello World!")
...
>>> hello()
Hello World!

함수는 인자를 취할 수도 있다.

>>> def hello(object):
...		print("Hello " + object + "!")
...
>>> hello("cat")
Hello cat!

10. 클래스

개발자가 직접 클래스를 정의하면 독자적인 자료형을 만들 수 있다.
클래스에는 그 클래스만의 전용 함수(메서드)와 속성을 정의할 수 있음.

class 클래스 명:
	def __init__(self, 인수, ...):	  # 생성자
    	...
    def 메서드 명 1(self, 인수, ...):		# 메서드 1
    	...
    def 메서드 명 2(self, 인수, ...):		# 메서드 2
    	...

_ _init_ _이라는 메서드는 클래스를 초기화하는 방법을 정의; 이 메서드를 생성자(constructor)라고 하며, 클래스의 인스턴스가 만들어질 때 한 번만 불림.

파이썬에서는 메서드의 첫 번째 인수로 자신(자신의 인스턴스)를 나타내는 self를 명시적으로 쓰는 것이 특징.

예시)

class Man:
	def __init__(self, name):
    	self.name = name
        print("Initialized!")
        
    def hello(self):
    	print("Hello " + self.name + "!")
        
    def goodbye(self):
    	print("Good-bye " + self.name + "!")
        
m = Man("David")
m.hello()
m.goodbye()
$ python man.py
Initialized!
Hello David!
Good-bye David!

11. 넘파이(numpy)

넘파이는 외부 라이브러리(표준 파이썬에는 포함되지 않음)

import numpy as np

위와 같이 import 문을 통해 라이브러리를 가져와야 함.
이 때, np라는 이름으로 가져옴으로써 앞으로 넘파이 메소드들을 np를 통해 참조할 수 있도록 함.

  • 넘파이 배열 생성
>>> x = np.array([1.0, 2.0, 3.0])
>>> print(X)
[1. 2. 3.]
>>> type(X)
<class 'numpy.ndarray'>
  • 넘파이의 산술 연산
>>> x = np.array([1.0, 2.0, 3.0])
>>> y = np.array([2.0, 4.0, 6.0])
>>> x + y
array([ 3., 6., 9.])
>>> x - y
array([ -1., -2., -3.])
>>> x * y
array([2., 8., 18.])
>>> x / y
array([ 0.5, 0.5, 0.5])

12. matplotlab

matplotlab은 그래프를 그려주는 라이브러리

import numpy as np
import matplotlib.pyplot as plt

# 데이터 준비
x = np.arange(0, 6, 0.1)	# 0에서 6까지 0.1 간격으로 생성
y = np.sin(x)

# 그래프 그리기
plt.plot(x, y)
plt.show()

  • 추가적인 pyplot의 기능
import numpy as np
import matplotlib.pyplot as plt

# 데이터 준비
x = np.arange(0, 6, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)

# 그래프 그리기
plt.plot(x, y1, label="sin")
plt.plot(x, y2, linestyle="--", label="cos") # cos 함수는 점선으로 그리기
plt.xlabel("x")	# x축 이름
plt.ylabel("y")	# y축 이름
plt.title('sin & cos')	# 제목
plt.legend()	# 범례
plt.show()

profile
The World Is My Oyster 🌏

0개의 댓글