Python 기반 라이브러리로
데이터 분석에 NumPy, pandas
데이터 시각화에 matplotlib, seaborn
웹 어플리케이션 개발에 Flask, django가 있습니다.
Numpy = Numerical Python
대규모의 고성능 수치 계산(연산속도 빠르고, 메모리를 효율적으로)
N차원의 배열을 효율적으로(반복문 없이 바로연산)
공식 사이트: https://numpy.org/
2차원 데이터는 엑셀 시트를 생각해보면 됩니다. 현업에서 2차원을 가장 많이 이용합니다.
이미지 데이터는 수많은 픽셀로 구성된 2차원 데이터입니다.
컬러 이미지 데이터는 RGB로 3차원 데이터입니다.
영상 이미지는 한장의 컬러이미지가 연속되므로 4차원 데이터입니다.
Numpy는 이러한 다양한 차원의 배열을 효율적으로 다룰 수 있게 해줍니다.
Numpy는 ndarray(N-dimension Array)라는 핵심 자료구조를 제공해주는데, 이는 대규모 데이터 집합을 담을 수 있는 매우 빠르고 유연한 핵심 자료구조입니다.
Numpy를 배운다는 것은?
다양한 차원의 데이터를 ndarray에 저장, 추가, 수정, 삭제할 수 있고,
ndarray에 저장된 데이터들을 연산, 조회, 정렬할 수 있고,
다양한 데이터들을 원하는 뷰로 결합하여 활용할 수 있는
파이썬 기반으로 만들어진 도구 사용법을 배우는 과정입니다.
Ndarray의 주요 속성
Ndarray의 생성
np.array(object,dtype)
선형대수에서
하나의 수: Scalar
1D Array: Vector
2D Array: Matrix
3D Array: Tensor
<실습코드>
'''
numpy 라이브러리 호출
'''
import numpy as np
'''
numpy 버전 출력
'''
print(np.__version__)
'''
ndarray 생성
'''
data = [10, 20, 30]
arr = np.array(data)
'''
생성한 ndarray 의 속성 출력
'''
print('\nCreate 1D Array')
print(arr)
print('type = ', type(arr))
print("shape: {}, size: {}, dtype: {}, dimension: {}"
.format(arr.shape, arr.size, arr.dtype, arr.ndim))
'''
2차원 ndarray 생성
'''
data = [[1,2,3], [4,5,6]]
arr = np.array(data, dtype=float)
'''
생성한 ndarray 의 속성 출력
'''
print('\nCreate 2D Array')
print(arr)
print('type = ', type(arr))
print("shape: {}, size: {}, dtype: {}, dimension: {}"
.format(arr.shape, arr.size, arr.dtype, arr.ndim))
'''
3차원 ndarray 생성
'''
data = [[[1, 2, 3],
[4, 5, 6]],
[[3, 2, 1],
[4, 5, 6]]]
arr = np.array(data, dtype=float)
'''
생성한 ndarray 의 속성 출력
'''
print('\nCreate 3D Array')
print(arr)
print('type = ', type(arr))
print("shape: {}, size: {}, dtype: {}, dimension: {}"
.format(arr.shape, arr.size, arr.dtype, arr.ndim))
<실행결과>
1.20.2
Create 1D Array
[10 20 30]
type = <class 'numpy.ndarray'>
shape: (3,), size: 3, dtype: int64, dimension: 1
Create 2D Array
[[1. 2. 3.]
[4. 5. 6.]]
type = <class 'numpy.ndarray'>
shape: (2, 3), size: 6, dtype: float64, dimension: 2
Create 3D Array
[[[1. 2. 3.]
[4. 5. 6.]]
[[3. 2. 1.]
[4. 5. 6.]]]
type = <class 'numpy.ndarray'>
shape: (2, 2, 3), size: 12, dtype: float64, dimension: 3
np.arange((start),stop,(step))
np.zeros(shape, dtype=float)
np.ones(shape, dtype=float)
np.full(shape, fill_value, dtype=None)
np.empty(shape)
다음은 지정된 배열과 shape이 같은 ndarray 를 생성하는 *_ like 함수
np.zeros_like()
np.ones_like()
np.full_like()
np.empty_like()
<실습코드>
import numpy as np
def printinfo(arr):
print(arr)
print("shape: {}, size: {}, dtype: {}, dimension: {}"
.format(arr.shape, arr.size, arr.dtype, arr.ndim))
'''
np.arange() 를 통한 ndarray 생성
'''
arr = np.arange(2,10)
print('\nCreate ndarray by np.arange()')
printinfo(arr)
'''
np.zeros(data) 를 통한 ndarray 생성1
'''
arr = np.zeros(5)
print('\n Create ndarray by np.zeors()')
printinfo(arr)
'''
np.zeros(data, dtype) 를 통한 ndarray 생성2
'''
arr = np.zeros((3,4), dtype=int)
print('\n Create ndarray by np.zeors()')
printinfo(arr)
'''
np.ones() 를 통한 ndarray 생성
'''
arr = np.ones((3,4))
print('\n Create ndarray by np.ones()')
printinfo(arr)
'''
np.full() 를 통한 ndarray 생성
'''
arr = np.full((3,4),77)
print('\n Create ndarray by np.full()')
printinfo(arr)
'''
sample 데이터 생성 및
ones_like() 를 통한 ndarray 생성
'''
#sample 데이터 생성
data = [[1,2,3], [4,5,6]]
sample = np.array(data)
print('\n Sample')
printinfo(sample)
one_array = np.ones_like(sample)
print('\n Create ndarray by np.ones_like()')
printinfo(one_array)
<실행결과>
Create ndarray by np.arange()
[2 3 4 5 6 7 8 9]
shape: (8,), size: 8, dtype: int64, dimension: 1
Create ndarray by np.zeors()
[0. 0. 0. 0. 0.]
shape: (5,), size: 5, dtype: float64, dimension: 1
Create ndarray by np.zeors()
[[0 0 0 0]
[0 0 0 0]
[0 0 0 0]]
shape: (3, 4), size: 12, dtype: int64, dimension: 2
Create ndarray by np.ones()
[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
shape: (3, 4), size: 12, dtype: float64, dimension: 2
Create ndarray by np.full()
[[77 77 77 77]
[77 77 77 77]
[77 77 77 77]]
shape: (3, 4), size: 12, dtype: int64, dimension: 2
Sample
[[1 2 3]
[4 5 6]]
shape: (2, 3), size: 6, dtype: int64, dimension: 2
Create ndarray by np.ones_like()
[[1 1 1]
[1 1 1]]
shape: (2, 3), size: 6, dtype: int64, dimension: 2