오늘 밀린 블로그 포스팅을 해보려 한다.
목표는 인지신경망까지이지만 아무래도 퍼셉트론까지만 할 듯 ...
부지런히 달려나가자!
1. 딕셔너리
딕셔너리(dictionary)는 키(key)와 값(value)을 한 쌍으로 저장한다.
key와 value 부분에는 정수형, 실수형, str형 등 다양한 자료형이 올 수 있다.
>>>dic = {'사과':3000} #딕셔너리 생성
>>>dic['사과'] #원소 접근
3000
>>>dic['바나나'] = 2000 #새로운 원소 추가
>>>print(dic)
{'사과':3000, '바나나':2000}
2. bool형
논리 회로에서 boolean형이라고 배운 bool형이라는 자료형은 True(참), False(거짓) 이 두 값만을 취한다.
bool에는 and, or, not 연산자를 사용할 수 있다. 진리표(truth table)에서 참^참 = 참, 참v거짓 = 참, 과 같이 말이다.
AND 연산 | OR 연산 | ||||
A | B | A^B | A | B | AvB |
True | True | True | True | True | True |
True | False | False | True | False | True |
False | True | False | False | True | True |
False | False | False | False | False | False |
3. if 문
영어로 "만약 ~이면" 의 뜻을 그대로 사용한다.
조건이 참이면 if문을 실행한다.
조건이 거짓일 경우 실행은 else문을 사용한다.
>>>me = True
>>>if me:
>>> print("I am a person")
I am a person
...
>>>dog = False
>>>if dog:
>>> print("I am a person")
>>>else:
>>> print("I am a dog")
I am a dog
4. for 문
for문은 반복 처리에 사용한다.
아래 코드는 리스트 안의 원소를 i가 리스트의 원소 1, 2, 3, 4에 순서대로 접근함을 보여준다.
#for문
#for 변수 in 범위:
# 실행문
>>>for i in [1, 2, 3, 4]
... print(i)
1
2
3
4
5. 넘파이
배열, 행렬 계산에 쓰이는 라이브러리이다.
import numpy as np
위의 코드를 작성함으로써 넘파이 라이브러리를 가져와 사용할 수 있다.
numpy라는 라이브러리를 np라는 이름으로 가져오기 때문에 우리는 np를 통해 참조 가능하다.
>>>import numpy as np
>>>x = np.array([1, 2, 3] #넘파이 배열 생성
>>>print(x)
[1, 2, 3]
>>>type(x)
<class 'numpy.ndarray'>
또한 넘파이 배열로 산술연산이 가능하다.
그러나 같은 크기의 배열(원소 수가 같은 배열)에서만 연산이 가능하며,
원소 수가 서로 다른 두 배열의 연산을 하게 되면 오류가 난다는 것을 명심해 둬야 한다.
>>>x = np.array([1, 2, 3])
>>>y = np.array([[2, 3, 4])
>>>x + y
[3, 5, 7]
>>>x * y #원소별 곱셈
[2, 6, 12]
넘파이는 다차원 배열도 작성할 수 있다. 한 차원 당 대괄호를 한 번 더 써준다고 생각하면 편리할 듯 하다.
배열명.shape를 통해 몇차원 배열인지, 행의 수와 열의 수는 몇인지를 알 수 있다.
아래의 코드에서 mat라는 함수는 2x2 행렬이다.
>>> mat = np.array([[1, 2], [3, 4]])
>>> print(mat)
[[1,2]
[3,4]]
>>> mat.shape
(2, 2)
또한, 넘파이의 다차원 배열로 덧셈, 곱셈 등과 같은 연산이 가능하다.
하지만 주의할 점이 있다.
가령 행렬에서 덧셈 혹은 곱셈 등의 연산을 할 때 행렬의 수를 맞춰주어야하듯 ,
넘파이 배열에서도 맞춰주지 않으면 연산이 이루어지지 않는다.
출처 : 밑바닥부터 시작하는 딥러닝, 사이토 고키 저/개앞맵시(이복연) 역
'밑바닥부터 시작하는 딥러닝' 카테고리의 다른 글
1. 파이썬 기초 (0) | 2020.08.10 |
---|