- NumPy - 수학/과학 연산을 위한 파이썬 패키지
- NumPy 기초
- NumPy 어레이 만들기
- NumPy 어레이 출력하기
- NumPy 기본 연산
- NumPy 범용 함수 (ufunc)
- NumPy 인덱싱/슬라이싱/이터레이팅
- NumPy 어레이 형태 다루기
- NumPy 난수 생성 (Random 모듈)
- NumPy 다양한 함수들
- numpy.absolute
- numpy.add
- numpy.allclose
- numpy.amax
- numpy.amin
- numpy.append
- numpy.arange
- numpy.arccos
- numpy.arccosh
- numpy.arcsin
- numpy.arcsinh
- numpy.arctan
- numpy.arctanh
- numpy.argmax
- numpy.argsort
- numpy.around
- numpy.array_equal
- numpy.array_split
- numpy.array
- numpy.cbrt
- numpy.ceil
- numpy.clip
- numpy.concatenate
- numpy.copy
- numpy.cos
- numpy.cosh
- numpy.deg2rad
- numpy.delete
- numpy.digitize
- numpy.divide
- numpy.dot
- numpy.empty_like
- numpy.empty
- numpy.equal
- numpy.exp
- numpy.exp2
- numpy.expm1
- numpy.fabs
- numpy.fix
- numpy.floor_divide
- numpy.floor
- numpy.full_like
- numpy.full
- numpy.greater_equal
- numpy.greater
- numpy.identity
- numpy.insert
- numpy.isclose
- numpy.less_equal
- numpy.less
- numpy.linspace
- numpy.loadtxt
- numpy.log
- numpy.log1p
- numpy.log2
- numpy.log10
- numpy.matmul
- numpy.mean
- numpy.mod
- numpy.multiply
- numpy.ndarray.flatten
- numpy.ndarray.shape
- numpy.negative
- numpy.nonzero
- numpy.not_equal
- numpy.ones_like
- numpy.ones
- numpy.polyfit
- numpy.positive
- numpy.power
- numpy.rad2deg
- numpy.random.rand
- numpy.random.randint
- numpy.random.randn
- numpy.random.seed
- numpy.random.standard_normal
- numpy.reciprocal
- numpy.remainder
- numpy.repeat
- numpy.reshape
- numpy.rint
- numpy.round_
- numpy.savetxt
- numpy.set_printoptions
- numpy.sign
- numpy.sin
- numpy.sinh
- numpy.split
- numpy.sqrt
- numpy.square
- numpy.std
- numpy.subtract
- numpy.sum
- numpy.take
- numpy.tan
- numpy.tanh
- numpy.tile
- numpy.transpose
- numpy.tril
- numpy.triu
- numpy.true_divide
- numpy.trunc
- numpy.var
- numpy.where
- numpy.zeros_like
- numpy.zeros
- NumPy 상수
- Python Tutorial
- NumPy Tutorial
- Matplotlib Tutorial
- PyQt5 Tutorial
- BeautifulSoup Tutorial
- xlrd/xlwt Tutorial
- Pillow Tutorial
- Googletrans Tutorial
- PyWin32 Tutorial
- PyAutoGUI Tutorial
- Pyperclip Tutorial
- TensorFlow Tutorial
- Tips and Examples
NumPy 기초¶
NumPy 어레이¶
NumPy의 주요한 객체는 다차원의 동종 어레이 (homogeneous multidimensional array)입니다.
보통 이 어레이는 숫자 요소들의 모음이며, 모두 동일한 자료형을 갖습니다.
NumPy에서 차원은 축 (axis)이라고 합니다.
예를 들어, 3차원 공간에서 점 [1, 2, 1]의 좌표는 하나의 축 (axis)을 갖습니다.
이 축은 3개의 요소를 가지고 길이는 3입니다.
[[ 1., 0., 0.],
[ 0., 1., 2.]]
이 어레이는 두 개의 축을 갖는데, 첫번째 축은 길이가 2이고 두번째 축은 길이가 3입니다.
numpy.ndarray 클래스¶
NumPy의 어레이는 ndarray 클래스인데,
표준 파이썬 라이브러리의 array.array 클래스와는 다릅니다.
파이썬의 array.array 클래스는 1차원 어레이만 다루며, NumPy 어레이에 비해 더 적은 기능을 제공합니다.
numpy.ndarray 객체의 중요한 속성은 다음과 같습니다:
ndarray.ndim
: 어레이의 축의 개수 (차원).
ndarray.shape
: 어레이의 차원. 각 차원의 어레이의 크기를 나타내는 정수의 튜플.
n개의 행, m개의 열을 갖는 행렬의 경우, shape은 (n, m). 따라서 shape 튜플의 길이는 축의 개수가 됨.
ndarray.size
: 어레이의 요수의 총 개수. shape 튜플의 요소의 곱과 같음.
ndarray.dtype
: 어레이의 요소의 타입을 나타내는 객체.
표준 파이썬 타입을 이용해서 dtype을 만들거나 지정할 수 있음.
이 외에도 NumPy는 numpy.int32, numpy.int16, numpy.float64와 같은 고유한 타입을 제공함.
ndarray.itemsize
: 어레이의 각 요소의 바이트 크기.
예를 들어, float64 타입의 요소를 갖는 어레이는 itemsize가 8 (=64/8).
complex32 타입을 갖는 어레이의 itemsize는 4 (=32/8). ndarray.dtype.itemsize와 같음.
ndarray.data
: 어레이의 실제 요소를 갖는 버퍼.
보통, 인덱스 기능을 이용해서 어레이의 요소에 접근하기 때문에 이 속성을 사용할 필요가 없을 것임.
예제¶
import numpy as np
a = np.arange(15).reshape(3, 5)
print(a)
print('a.shape:', a.shape) # 어레이의 차원
print('a.ndim:', a.ndim) # 어레이의 축의 개수
print('a.dtype.name:', a.dtype.name) # 어레이 요소의 타입
print('a.itemsize:', a.itemsize) # 어레이 요소의 바이트 크기
print('a.size:', a.size) # 어레이 요소의 총 개수
print('type(a):', type(a)) # 어레이의 타입
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
a.shape: (3, 5)
a.ndim: 2
a.dtype.name: int64
a.itemsize: 8
a.size: 15
type(a): <class 'numpy.ndarray'>
numpy.ndarray 객체의 다양한 속성 (attribute)들은 이 객체에 대한 다양한 정보를 제공합니다.
이제 다음 페이지에서는 NumPy 어레이를 생성하는 다양한 방법에 대해 알아보겠습니다.
이전글/다음글
다음글 : NumPy 어레이 만들기