반응형
NumPy
Python의 확장 모듈로서 대규모 수학 함수 라이브러리를 갖고 있으며, 연산 기능이 충실함
인공지능을 구현할 때에는 벡터, 행렬을 자주 다루므로 NumPy는 매우 유용한 툴
함수 정리
함수 역할
np.array() | 배열 생성 |
np.zeros() | ‘0.’으로 채워진 배열 생성 |
np.ones() | ‘1.’로 채워진 배열 생성 |
np.arange(start, stop, step) | 시작 숫자부터 마지막 숫자-1 만큼 증가폭만큼의 수를 나열한 배열 생성 |
- 파이썬의 range() 함수와 동일 | | np.shape() | 배열의 형태 반환 → (행, 열) | | len() | 배열의 행 수 반환 | | np.sum() | 합계 반환 | | np.average() | 평균 반환 | | np.max() | 최댓값 반환 | | np.min() | 최솟값 반환 | | np.linspace(start, stop, num) | 시작값부터 마지막 값까지 같은 간격의 num개로 나눈 배열 생성 그래프의 가로축 값으로 자주 사용 |
import 하는 방법
import numpy as np
[0, 1, 2, 3, 4, 5] NumPy 배열 생성
a = np.array([0, 1, 2, 3, 4, 5])
print(a)
2차원 배열은?
b = np.array([[0, 1, 2], [3, 4, 5]]) # 한번 더 []로 묶어줘야 함!
print(b)
3차원 배열은?
c = np.array([[[0, 1, 2], [3, 4, 5]], [[5, 4, 3], [2, 1, 0]]]) # []로 묶는 것 주의!
print(c)
zeros(), ones(), arange() 함수
zeros = np.zeros(8)
print(zeros) # [0. 0. 0. 0. 0. 0. 0. 0.]
ones = np.ones(8)
print(ones) # [1. 1. 1. 1. 1. 1. 1. 1.]
continunity = np.arange(8)
print(continunity) # [0 1 2 3 4 5 6 7]
→ arange()와 linspace() 차이:
shape() 함수, len() 함수
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a)
# [[1 2 3]
# [4 5 6]]
print(np.shape(a)) # (2, 3) → 2행 3열
len(a) # 2 // 행(가장 바깥쪽의 요소 수)의 수 출력 → 2행
배열의 연산
a = np.array([[0, 1, 2], [3, 4, 5]])
print(a)
'''
[[0 1 2
3 4 5]]
'''
print(a + 3) # a 배열의 모든 요소에 각각 3씩 더한 값 출력
'''
[[3 4 5
6 7 8]]
'''
print(a * 3) # a 배열의 모든 요소에 각각 3씩 곱한 값 출력
'''
[[0 3 6
9 12 15]]
'''
배열끼리의 연산
a = np.array([[0, 1, 2], [3, 4, 5]])
print(a)
print()
'''
[[0 1 2]
[3 4 5]]
'''
b = np.array([[2, -1, -1], [2, -1, -1]])
c = a + b
print(c)
print()
'''
[[2 0 1]
[5 3 4]]
'''
d = (a+c)
print(d)
print()
'''
[[2 1 3]
[8 7 9]]
'''
e = a*c
print(e)
'''
[[ 0 0 2]
[15 12 20]]
'''
1·2차원 배열의 요소에 접근하기 / 요소 값 바꾸기 / 행 또는 열에 접근
a = np.arange(1, 6)
print(a) # [1 2 3 4 5]
# 1차원 배열의 요소에 접근
print(a[2]) # 0, 1, 2, 3, 4 순서로 index가 지정되어 있어서 결과가 3으로 나옴
# 1차원 배열의 요소 값 바꾸기
a[2] = 9
print(a) # [1 2 9 4 5]
b = np.array([[0, 1, 2], [3, 4, 5]])
print(b)
'''
[[0 1 2]
[3 4 5]]
'''
# 2차원 배열의 요소에 접근
print(b[1, 2]) # 5
# 2차원 배열의 요소 값 바꾸기
b[1][2] = 9
print(b)
'''
[[0 1 2]
[3 4 9]]
'''
c = np.array([[0, 1, 2],
[3, 4, 5]])
print(c[1, :]) # 인덱스가 1인 행을 취득
# [3 4 5]
print()
c[:, 1] = np.array([6, 7]) # 인덱스가 1인 열을 교체
print(c)
'''
[[0 6 2]
[3 7 5]]
'''
함수와 배열
def my_func(x):
y = x * 2 + 1
return y
a = np.array([[0, 1, 2],
[3, 4, 5]])
print(my_func(a))
'''
[[ 1 3 5]
[ 7 9 11]]
'''
여러 가지 함수
a = np.array([[0, 1, 2],
[3, 4, 5]])
print(f'합계: {np.sum(a)}')
print(f'평균: {np.average(a)}')
print(f'최댓값: {np.max(a)}')
print(f'최솟값: {np.min(a)}')
'''
합계: 15
평균: 2.5
최댓값: 5
최솟값: 0
'''
**□문제¶
Jupyter Notebook의 셀에 NumPy의 2차원 배열을 두 개 기술하고, 두 개의 합, 차, 곱을 구합시다(리스트2.48).
a = np.array([[0, 1, 2],
[3, 4, 5]])
b = np.array([[5, 4, 3],
[2, 1, 0]])
''' 연립 이차방정식으로 x, y값 구했음
x1=0 x2=1 x3=2
x4=3 x5=4 x6=5
y1=5 y2=4 y3=3
y4=2 y5=1 y6=0
'''
print(a+b)
print()
print(a-b)
print()
print(a*b)
'''
[[5 5 5]
[5 5 5]]
[[-5 -3 -1]
[ 1 3 5]]
[[0 4 6]
[6 4 0]]
'''
'AI & BigData' 카테고리의 다른 글
[AI] 인공신경망(Artificial Neural Network) - 퍼셉트론(Perceptron) (0) | 2023.04.29 |
---|---|
[BigData] 빅데이터의 5가지 특성 - 5V (0) | 2023.04.28 |
[Data Visualization] The basis of Matplotlib with Python (0) | 2023.04.28 |
[AI] 1. Introduction to deep learning (0) | 2023.04.28 |
[Data Analysis] Mathematical Functions of NumPy (0) | 2023.04.28 |