코딩하는 해맑은 거북이
[Numpy] Numpy 배열 생성 방법 본문
해당 글은 Numpy 배열 생성 함수 일부에 대해 다룬다.
Numpy v1.19 Manual을 참고하였다.
1. Numpy 배열 생성
방법1. np.array(object [, dtype, copy, order, subok, ndmin])
배열을 생성한다.
- object : 배열 (object는 대괄호[ ] 또는 소괄호( )가 가능하다.)
- dtype : 데이터 타입
- copy : 기본값(true)이면 object가 복사, 아니면 복사본이 필요한 경우에만 만들어진다.
- order : 배열의 메모리 레이아웃을 지정한다. 옵션은 총 4가지로 {'K', 'A', 'C', 'F'}가 있다.
- subok : True이면 하위 클래스가 통과되고, 아니면 반환된 배열이 기본 클래스 배열(기본값)이 된다.
- ndmin : 최소 차원 수를 지정한다.
np.array([1, 2]) # 1차원 ( = np.array((1, 2)) )
np.array([ # 2차원
[1, 2],
[3, 4]])
np.array([[ # 3차원
[1, 2],
[3, 4]],
[[5, 6],
[7, 8]]])
list1 = [1, 2, 3, 4, 5]
x = np.array(list1) # 파이썬의 list를 직접 넣을 수도 있음
x
array([1, 2, 3, 4, 5])
np.array([1, 2, 3, 4, 5], ndmin=2)
array([[1, 2, 3, 4, 5]])
np.array([1, 2, 3, 4, 5], dtype=float)
array([1., 2., 3., 4., 5.])
Numpy는 기본적으로 array간의 사칙연산을 지원한다.
u = np.array([1, 2])
v = np.array([3, 4])
u+v # array([4, 6])
u-v # array([-2, -2])
u*v # array([3, 8])
u/v # array([0.33333333, 0.5])
u%v # array([1, 2])
방법2. np.arange([start,] stop[, step,][, dtype])
주어진 간격(시작~끝) 내에서 균일한 간격의 값을 가진 배열을 생성한다.
- start : 시작, 기본 시작값은 0 이다.
- stop : 끝, 이 값이 포함되지 않는다.
- step : 값 사이의 간격
- dtype : 데이터 타입
np.arange(10) # 0부터 10미만까지의 배열 생성
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.arange(1, 7) # 1부터 7미만까지 간격 1만큼 증가하는 배열 생성
array([1, 2, 3, 4, 5, 6])
np.arange(10, 20, 2) # 10부터 20 미만까지 간격 2만큼 증가하는 배열 생성
array([10, 12, 14, 16, 18])
np.arange(20, 10, -2) # 감소로도 가능
array([20, 18, 16, 14, 12])
방법3. np.zeros(shape[, dtype, order])
모든 값이 0으로 초기화된 배열을 생성한다.
- shape : 배열의 형태
- dtype : 데이터 타입
- order : 다차원 데이터를 행 우선('C', C 스타일) 또는 열 우선('F', Fortran 스타일) 순서로 메모리에 저장할지 여부, 옵션은 총 2가지로 { 'C', 'F' }가 있다. 기본값은 'C' 이다.
np.zeros(5)
array([0., 0., 0., 0., 0.])
np.zeros([5, 1]) # 5행 1열 배열 생성 ( = np.zeros((5, 1)) )
array([[0.],
[0.],
[0.],
[0.],
[0.]])
np.zeros([1, 5]) # 1행 5열의 배열 생성
array([[0., 0., 0., 0., 0.]])
방법4. np.ones(shape[, dtype, order])
모든 값이 1로 초기화된 배열을 생성한다.
- shape : 배열의 형태
- dtype : 데이터 타입
- order : 다차원 데이터를 행 우선('C', C 스타일) 또는 열 우선('F', Fortran 스타일) 순서로 메모리에 저장할지 여부, 옵션은 총 2가지로 { 'C', 'F' }가 있다. 기본값은 'C' 이다.
np.ones(5)
array([1., 1., 1., 1., 1.])
np.ones([5, 1]) # 5행 1열 배열 생성
array([[1.],
[1.],
[1.],
[1.],
[1.]])
np.ones([1, 5]) # 1행 5열 배열 생성
array([[1., 1., 1., 1., 1.]])
방법5. np.full(shape, fill_value[, dtype, order])
사용자가 지정한 값으로 채워진 배열을 생성한다.
- shape : 배열의 형태
- fill_value : 채울 값
- dtype : 데이터 타입
- order : 다차원 데이터를 행 우선('C', C 스타일) 또는 열 우선('F', Fortran 스타일) 순서로 메모리에 저장할지 여부, 옵션은 총 2가지로 { 'C', 'F' }가 있다. 기본값은 'C' 이다.
np.full((1, 5), 10) # 모든 값이 10으로 채워진 1행 5열의 배열 생성
array([[10, 10, 10, 10, 10]])
np.full((2, 2), [1, 2])
array([[1, 2],
[1, 2]])
방법6. np.empty(shape[, dtype, order])
초기화 되지 않은 배열을 생성한다. 메모리 상태에 따라 다른 값이 들어간다.
- shape : 배열의 형태
- dtype : 데이터 타입
- order : 다차원 데이터를 행 우선('C', C 스타일) 또는 열 우선('F', Fortran 스타일) 순서로 메모리에 저장할지 여부, 옵션은 총 2가지로 { 'C', 'F' }가 있다. 기본값은 'C' 이다.
np.empty((1, 7))
array([[1.47160101e-316, 1.38338381e-322, 9.11571735e-304, 3.44620186e-085, 3.63460077e+185, 1.57230356e+108, 9.11568534e-304]])
방법7. np.diag(v [, k])
대각선을 추출하거나 대각선에 값이 채워진 배열(대각행렬)을 생성한다.
- v : 대각선에 들어갈 값
- k : 치우친 정도
np.diag([1, 2, 3])
[[1 0 0]
[0 2 0]
[0 0 3]]
np.diag([1, 2, 3], k=1)
[[0 1 0 0]
[0 0 2 0]
[0 0 0 3]
[0 0 0 0]]
방법8. np.identity(n[, dtype]) 혹은 np.eye(n[, k, dtype, order])
2차원 nxn 정방단위행렬을 생성한다.
- n : nxn의 행 또는 열의 수
- dtype : 데이터 타입
- k : 치우친 정도
- order : 다차원 데이터를 행 우선('C', C 스타일) 또는 열 우선('F', Fortran 스타일) 순서로 메모리에 저장할지 여부, 옵션은 총 2가지로 { 'C', 'F' }가 있다. 기본값은 'C' 이다.
np.identity(3)
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
np.eye(3)
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
[참고문헌]
좀더 자세한 내용은 아래 링크를 참고하시면 될 것 같습니다.
이는 Numpy v1.19 Manual이고 상위 버전을 사용하고 계신다면 v1.21 링크를 참고하시면 됩니다.
- Numpy v1.19 Manual
numpy.org/doc/stable/reference/routines.array-creation.html
Array creation routines — NumPy v1.19 Manual
Note numpy.rec is the preferred alias for numpy.core.records.
numpy.org
- Numpy v1.21 Manual
numpy.org/devdocs/reference/routines.array-creation.html
Array creation routines — NumPy v1.21.dev0 Manual
Note numpy.rec is the preferred alias for numpy.core.records.
numpy.org
'Python > Numpy | Pandas' 카테고리의 다른 글
[Numpy] array를 list로 변환 (0) | 2023.01.02 |
---|---|
[Numpy] comparisons, boolean&fancy index, numpy data i/o (0) | 2022.12.27 |
[Numpy] shape, creation, operation 관련 함수 (0) | 2022.12.27 |
[Numpy] Numpy란, Numpy 특징, ndarray (0) | 2022.12.27 |
[Numpy] Numpy 정의, 설치, 라이브러리 선언 (0) | 2021.01.05 |