[python] numpy 기본 문법

김우경·2021년 5월 5일
0

밑바닥부터 시작하는 딥러닝 ch01을 보고 공부했습니다.

넘파이 가져오기

import numpy as np

넘파이 배열 생성

: ML에서 행렬 연산을 쉽게 하기 위해서 사용

  • np.array()
    x = np.array([1.0, 2.0, 3.0])

산술 연산

원소 수가 같은 두 numpy 배열 x, y에 대해서

 x = np.array([1.0, 2.0, 3.0])
 y = np.array([4.0, 5.0, 6.0])
 
 print(x+y)
 print(x-y)
 print(x/y)


원소별 산술 연산이 가능하다.

N차원 배열

x = np.array([[1.0, 2.0], [3.0, 4.0]])
y = np.array([[4.0, 5.0], [6.0, 7.0]])

print(x.shape) # 배열의 형상 보기
print(np.ndim(x)) # 배열의 차원 수 확인
print(x+y)

shape이 같은 행렬끼리는 산술 연산 가능

브로드캐스트

: 형상이 다른 배열끼리의 연산

x = np.array([[1.0, 2.0], [3.0, 4.0]])
y = np.array([10, 20])

print(x*y)

원소 접근하기

x = np.array([[1.0, 2.0], [3.0, 4.0]])

print(x[0]) # array([1.0, 2.0])
print(x[0][1]) # 2.0

그래프 그리기

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 6, 0.1) # 0부터 1까지 0.1 간격으로 생성
y = np.sin(x)

plt.plot(x, y)
plt.show()

그래프 이름과 축 이름 추가하기

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 6, 0.1) # 0부터 1까지 0.1 간격으로 생성
y1 = np.sin(x)
y2 = np.cos(x)

plt.plot(x, y1, label="sin")
plt.plot(x, y2, linestyle="--", label="cos")
plt.xlabel("x")
plt.ylabel("y")
plt.title("sin & cos")
plt.legend() # 범례추가
plt.show()

행렬의 곱

대응하는 차원의 원소 수를 일치시켜야 한다.

x = np.array([[1.0, 2.0], [3.0, 4.0]])
y = np.array([[4.0, 5.0], [6.0, 7.0]])

print(np.dot(x, y)) 

신경망에서의 행렬 곱

x = np.array([1, 2]) # 1*2
w = np.array([[1,3,5], [2,4,6]]) # 2*3

print(np.dot(x, w)) 
profile
Hongik CE

0개의 댓글