Numpy모듈은 다차원 배열을 쉽게 처리하고 효율적으로 사용할 수 있도록 지원하는 파이썬 라이브러리다.
import numpy as np
ndarr = np.array([1, 2, 3])
Ndarray는 파이썬의 리스트처럼 여러가지의 자료형을 삽입할 수 없다. Ndarray는 한가지의 자료형만 허용한다. 또, 리스트의 원소의 개수가 서로 달라도 되지만 Ndarray는 원소의 개수가 서로 같아야 한다.
import numpy as np
ndarr1 = np.array([1, 2, 3])
ndarr2 = np.array([2, 3, 4])
print(ndarr1 + ndarr2) //[3 5 7]
print(ndarr1 * ndarr2) //[2 6 12]
print(ndarr1 / ndarr2) //[0.5 0.66666667 0.75]
Ndarray는 행렬간의 사칙연산을 할 경우 각 원소의 사칙연산을 지원한다.
import numpy as np
ndarr = np.array([[1, 2, 3], [4, 5, 6]])
print(ndarr.ndim) //2
print(ndarr.shape) //(2, 3)
print(ndarr.flatten()) //[1, 2, 3, 4, 5, 6]
print(ndarr.reshape(2, 3) //[[1 2 3]
[4 5 6]]
print(ndarr[ndarr > 3]) //[4 5 6]
ndim: 행렬의 차원 수를 반환
shape: 행렬의 각 차원의 크기를 튜플 형태로 반환
flatten: 행렬의 평탄화 작업
reshape: 행렬의 차원을 변경
조건식: 조건식을 사용하여 해당 조건의 속성 출력
import numpy as np
ndarr1 = np.zeros((2, 2))
ndarr2 = np.ones((2, 2))
ndarr3 = np.full((2, 2), 2)
ndarr4 = np.eye(3)
ndarr5 = np.random.randint(0, 10, size=(0, 4))
ndarr6 = np.random.rand(5)
ndarr7 = np.arrange(5, 10, 2)
print(ndarr1) //[[0. 0.]
[0. 0.]]
print(ndarr2) //[[1. 1.]
[1. 1.]]
print(ndarr3) //[[2 2]
[2 2]]
print(ndarr4) //[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
print(ndarr5) //[3, 4, 1, 9]
print(ndarr6) //[0.54155425, 0.12345425, 0.13454235,
0. 43124543, 0.13455423]
print(ndarr7) //[5 7 9]
zeros: 영 행렬 생성
ones: 유닛 행렬 생성
full: 모든 원소가 k인 행렬 생성
eye: 단위 행렬 생성
random.randint: 정수 난수 행렬 생성
random.rand: 0~1사이의 난수 행렬 생성
arrange: 특정 순서가 있는 행렬 생성
import numpy as np
print(np.dot(4, 2)) //8
ndarr1 = np.array([1, 2, 3])
ndarr2 = np.array([4, 5, 6])
print(np.dot(ndarr1, ndarr2)) //32
ndarr1 = np.array([[1, 2], [3, 4]])
ndarr2 = np.array([[1, 2], [3, 4]])
print(np.dot(ndarr1, ndarr2)) //[[7 10]
[15 22]]
numpy는 스칼라의 곱 연산, 백터 내적 연산, 행렬곱 연산 등 복잡한 수학 계산을 지원한다.