728x90
https://numpy.org/doc/stable/reference/routines.array-creation.html
Numpy
- 과학 계산을 위한 연산 라이브러리
- 행렬 / 배열 처리를 위한 연산할 때 사용
사용 이유
- Python의 list 보다 Numpy의 ndarray가 빠름
- ndarray는 c언어로 구현, 연속된 메모리에 생성됨
- 전체 데이터를 한번에 계산함 (Vectorization)
- Python의 list 보다 적은 메모리를 사용함
- 선형 대수, 통계 관련 여러 함수를 내장하고 있음
Numpy 모듈 불러오기 & ndarray 생성
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1, 2, 3])
y = np.array([1, 2, 3])
plt.plot(x, y)
type 체크시 numpy.ndarray로 나오는 것을 확인 할 수 있음
x = np.array([[1, 2, 3], [4, 5, 6]])
print(y)
print(type(x))
Output
[[1 2 3]
[4 5 6]]
<class 'numpy.ndarray'>
특수한 배열 생성
np.arange -> Python의 range와 비슷함
np.arange(10)
np.arange(1,10)
np.arange()
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
array([1, 3, 5, 7, 9])
np.ones, np.zeros
np.zeros는 배열값이 1이 아니라 0이 들어감
np.ones((2, 3))
np.ones((2, 3, 4))
np.ones((2, 3, 4, 5))
array([[1., 1., 1.],
[1., 1., 1.]])
array([[[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]],
[[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]]])
array([[[[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]],
[[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]],
[[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]]],
[[[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]],
[[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]],
[[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]]]])
np.empty
항목을 초기화 하지 않고 새 배열을 반환함
np.empty((5, 5))
array([[1.31775939e-311, 1.31864561e-311, 1.31775939e-311,
1.31864561e-311, 1.31775939e-311],
[1.31864561e-311, 1.31775939e-311, 1.31864561e-311,
6.91691904e-323, 1.31864561e-311],
[1.31775939e-311, 1.31864561e-311, 1.31775939e-311,
1.31864561e-311, 5.44460342e-321],
[1.31864561e-311, 6.91691904e-323, 1.31864561e-311,
1.31775939e-311, 1.31862594e-311],
[2.75859453e-313, 5.30498948e-313, 8.48798316e-314,
1.27319747e-313, 1.31775939e-311]])
np.full
np.full((2, 3, 4), 5)
array([[[5, 5, 5, 5],
[5, 5, 5, 5],
[5, 5, 5, 5]],
[[5, 5, 5, 5],
[5, 5, 5, 5],
[5, 5, 5, 5]]])
np.eye
단위 행렬 (대각선만 1인 행렬)
np.eye(5)
array([[1., 0., 0., 0., 0.],
[0., 1., 0., 0., 0.],
[0., 0., 1., 0., 0.],
[0., 0., 0., 1., 0.],
[0., 0., 0., 0., 1.]])
np. linspace
- 균일한 간격의 숫자를 반환함
- 1부터 10까지 균일한 간격으로 3등분
- 나눠진 숫자들의 차가 같아야 함
- 5.5 - 1 = 4.5 , 10 - 5.5 = 4.5
np.linspace(1, 10, 3)
array([ 1. , 5.5, 10. ])
reshape
생성된 배열의 구조를 바꿀 때 사용
x = np.arange(16)
x.reshape(4, 4)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
728x90
'Python > numpy & Pytorch' 카테고리의 다른 글
[Pytorch] Tensor shuffle, 텐서 랜덤 섞기 (0) | 2023.03.16 |
---|---|
[Pytorch] tensor 합치기는 방법 cat(), stack() (0) | 2023.03.14 |
[Pytorch] torch 설정, 랜덤 tensor 생성 (0) | 2023.03.14 |
[Numpy] random 서브 모듈 (0) | 2022.08.01 |
Pytorch Cuda CuDNN 설정하기 (0) | 2021.11.06 |