돈이 만드는 세상
#3-2 파이썬 numpy 기초 정리 본문
numpy
numpy는 C언어로 구현된 파이썬 라이르러리로써, 파이썬에서 벡터, 행렬 등 수치 연산을 수행하는 선형대수(Linear algebra) 라이브러리입니다. 이는 데이터 분석을 할 때 사용되는 라이브러리인 pandas와 matplotlib의 기반으로 사용되기도 합니다.
import
import numpy as np
기본 개념
numpy에서 오브젝트는 동차(Homogeneous) 다차원 배열이라고 합니다. 'homo'가 있는 만큼 numpy에서는 모든 배열의 값이 같은 타입이어야 합니다. 그리고 numpy에서는 각 차원(Dimension)을 축(axis)이라고 합니다.
만약, 3D 공간에서의 포인트를 [1, 2, 1]과 같은 배열로 표현가능 한데, 1개의 축을 가진다고 표현합니다. 또한, 여기서 축은 3개의 요소(Element)를 가지고 있다고 하며 길이(Length)도 3입니다.
아래와 같은 경우 데이터는 2개의 축을 가집니다. 1번째 축은 길이가 2이며, 2번째 축은 길이가 3입니다. (2,3) 크기의 2D배열입니다.
[[1, 9, 9],
[0, 1, 2]]
numpy에서 배열은 ndarray 또는 array라고 부릅니다. numpy.array와 python.array는 다른 데이터 타입입니다.
기본적인 예제
아래와 같은 코드를 이용하면 (3, 5) 크기의 2D 배열을 생성할 수 있습니다.
a = np.arange(15).reshape(3, 5)
print(a)
# [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]]
numpy.ndarray의 대표적인 속성값들은 다음과 같습니다.
- ndarray.shape : 배열의 각 축(axis)의 크기
- ndarray.ndim : 축의 개수(Dimension)
- ndarray.dtype : 각 요소(Element)의 타입
- ndarray.itemsize : 각 요소(Element)의 타입의 bytes 크기
- ndarray.size : 전체 요소(Element)의 개수
print(a.shape)
# (3, 5)
print(a.ndim)
# 2
print(a.dtype)
# int64
print(a.itemsize)
# 8
print(a.size)
# 15
print(type(a))
# <class 'numpy.ndarray'>
Array 생성하기
기본적으로 np.array()를 활용해 생성할 수 있습니다. python에서 사용하는 Tuple이나 List를 입력하는 방법으로 numpy.ndarray를 만들 수 있습니다.
- np.array()
a = np.array([1, 2, 3])
print(a)
# [1, 2, 3]
print(a.dtype)
# int64
2D 배열이나 3D배열 등도 마찬가지 방법으로 입력으로 주면 생성할 수 있습니다.
a = np.array(
[
[1, 2, 3],
[4, 5, 6]
]
)
print(a)
# [[1 2 3]
# [4 5 6]]
# axis = (2, 3)
b = np.array(
[
[
(1, 2, 3),
(4, 5, 6)
],
[
(1, 2, 3),
(4, 5, 6)
]
]
)
print(b)
# [[[1 2 3]
# [4 5 6]]
# [[1 2 3]
# [4 5 6]]]
# axis = (2, 2, 3)
- np.arrange() : N 만큼 차이나느 숫자 생성
- np.linspace() : N 등분한 숫자 생성
# 10이상 30미만 까지 5씩 차이나게 생성 print(np.arange(10, 30, 5)) # [10 15 20 25] # 0이상 2미만 까지 0.3씩 차이나게 생성 print(np.arange(0, 2, 0.3)) # [0 0.3 0.6 0.9 1.2 1.5 1.8]
2022-2-15 정리
'프로그래밍 > Python' 카테고리의 다른 글
#3-3 pandas 'Series' , 'DataFrame' 기초 정리 (0) | 2022.02.15 |
---|---|
#3-1 파이썬 pandas 초급 강의(수정 필요) (0) | 2022.02.15 |
#2 본격적인 파이썬 공부를 위한 계획표(2022/02/09) (0) | 2022.02.09 |
#1-4 파이썬 초급 강의 - 예외 처리(try/exception) (0) | 2022.02.07 |
#1-3 Python 초급 강의 - 클래스(class) (0) | 2022.02.04 |