목차
1. 넘파이
•
외부 라이브러리 넘파이 가져오기
◦
import numpy as np
•
넘파이 배열 생성 → np.array() 메서드
x=np.array([1.0, 2.0, 3.0])
print(x) # [1. 2. 3. ]
print(type(x))
Python
복사
◦
인자: 리스트
▪
ex) [1.0, 2.0, 3.0]
◦
반환값: 넘파이의 특수 배열(numpy.ndarray)
▪
ex) [1. 2. 3. ]
•
넘파이 산술 연산 → 배열끼리 원소별 연산 (단 원소 수 같아야함)
x=np.array([1.0, 2.0, 3.0])
y=np.array([2.0, 4.0, 6.0])]
print(x+y) # array([3., 6., 9.])
print(x-y)
print(x*y)
print(x/y)
Python
복사
•
넘파이 N차원 배열 → 형상이 같은 배열끼리 원소별 연산
◦
2차원 배열(행렬) 작성
A=np.array([1,2], [3,4])
print(A) # [[1 2] [3 4]]
print(A.shape) # (2, 2)
print(A.dtype) # dtype('int64')
Python
복사
◦
2차원 배열(행렬) 산술 연산 → 형상이 같은 배열끼리 원소별 연산 가능
B=np.array([3,0], [0,6])
print(A+B) # array([[4, 2], [3, 10]])
print(A*B) # array([[3, 0], [0, 24]])
Python
복사
•
브로드캐스트 → 형상이 다른 배열끼리 원소별 연산
◦
예시 1) 배열과 수치(스칼라 값)의 연산 → 원소별로 한 번씩 수치와 연산
x=np.array([1.0, 2.0, 3.0])
print(x/2.0) # array([0.5, 1., 1.5])
Python
복사
▪
원리) 스칼라값이 원소 3개인 배열로 확대된 후 연산이 이뤄진 것임
•
[1. 2. 3.] / [2. 2. 2.]
◦
예시 2) 형상이 다른 배열끼리 계산 → 형상 맞게 배열을 변형한 후 원소별 연산
A=np.array([[1,2], [3,4]]) # [[1 2] [3 4]]
B=np.array([10,20]) # [[10 20] [10 20]]로 변형됨
print(A*B) # array([[10, 40], [30, 80]])
Python
복사
▪
1차원 배열이 2차원 배열과 같은 형상으로 변형됨
•
원소 접근
◦
인덱스 → 각 원소에 접근
X=np.array([[51, 55], [14, 19], [0, 4]])
print(X) # [[51 55] [14 19] [0 4]]
print(X[0]) # 0행 -> array([51, 55]))
print(X[0][1]) # (0,1)위치의 원소 -> 55
Python
복사
◦
for문 → 각 원소에 접근
for row in X:
print(row)
# [51 55]
# [14 19]
# [0 4]
Python
복사
◦
평탄화, 인덱스를 배열로 지정 → 한 번에 여러 원소에 접근
X=X.flatten() # X를 1차원 배열로 평탄화
print(X) # [51 55 14 19 0 4]
print( X[np.array([0, 2, 4])] ) # 인덱스가 0,2,4인 원소 얻기-> array([51, 14, 0])
Python
복사
◦
부등호 연산 → 특정 조건 만족하는 원소만 얻기
print( X>15 ) # array( [True, True, False, True, False, False], dtype=bool)
print( [X>15] ) # array( [51, 55, 19] )
Python
복사
2. matplotlib
•
단순한 그래프 그리기 → sin 함수
import numpy as np
import matplotlib.pyplot as plt
# 데이터 준비
x=np.arange(0, 6, 0.1) # 0에서 6까지 0.1 간격으로 생성)
y=np.sin(x) # x의 각 원소에 sin함수 적용해 변수 y에 할당
# 그래프 그리기
plt.plot(x,y) # x, y를 인수로 그래프 그림
plt.show() # 그래프를화면에 출력함
Python
복사
•
pyplot의 기능 → cos 함수 추가
import numpy as np
import matplotlib.pyplot as plt
# 데이터 준비
x=np.arange(0, 6, 0.1) # 0에서 6까지 0.1 간격으로 생성)
y1=np.sin(x) # x의 각 원소에 sin함수 적용해 변수 y1에 할당
y2=np.cos(x)
# 그래프 그리기
plt.plot(x, y1, label="sin") # x, y1를 인수로 그래프 그림
plt.plot(x, y2, linestyle="--", label="cos" # cos 함수는 점선으로 그림
plt.xlabel("x") # x축 이름
plt.ylabel("y") # y축 이름
plt.title('sin과 cos') # 제목
plt.legend()
plt.show()
Python
복사
◦
이미지 표시하기