반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Coding
- if문
- 자바스크립트
- JAVA Script
- 게임개발
- 자바
- 선형대수학
- 코딩공부
- Numpy
- 코딩연습
- docker
- 도커
- 메소드
- unity
- 숫자형
- 유니티
- object
- javascript
- 코딩학습
- 딥러닝
- Python
- 라이브러리
- 파이썬
- 제이쿼리
- js
- jquery
- 코딩
- 문자열
- 객체
- STR
Archives
- Today
- Total
잇뉴얼 (IT_Manual)
[딥러닝 기초] 딥러닝 학습에 필요한 도구 - Numpy란? & ndarray 생성방법 본문
728x90
반응형
[딥러닝 기초] 딥러닝 학습에 필요한 도구 - Numpy란? & ndarray 생성방법
인공지능 학습을 위해서는 기본적으로 알아야될 파이썬 패키지가 있습니다.
- Numpy [ 수치 계산 ]
- Pandas [ 데이터 분석 ]
- matplotlib, seaborn [ 데이터 시각화 ]
이번 포스트에서는 Numpy에 대해 간단하게 알아볼까 합니다.
Numpy [ Numerical Python ]
Numpy는 다차원 행렬의 연산을 제공하는 수치계산 도구입니다. Pandas, Scikit-learn,PyTorch 등과 같은 데이터 사이언스 도구들이 NumPy에 의해 만들어졌습니다. Numpy의 특징은 다음과 같습니다.
- Matrix와 Vector와 같은 Array 연산의 사실상의 표준이다.
- 파이썬의 고성능 과학 계산용 패키지
- 하나의 데이터 type만 배열에 넣을 수 있다.
- 일반 List에 비해 빠르고, 메모리에 효율적이다.
- List와 가장 큰 차이점은 Dynamic typing 을 지원하지 않는다.
- 반복문 없이 데이터 배열에 대한 처리를 지원한다.
- 선형대수와 관련된 다양한 기능을 제공한다.
- C, C++, 포트란 등의 언어와 통합이 가능하다.
import numpy as np
numpy를 사용하기 위해서는 패키지를 먼저 추가를 해줘야합니다.
- 'import numpy'만 작성하면, numpy 패키지를 사용할 수 있는 상태가 되지만, numpy를 사용하기 위해서 코드줄마다 numpy를 작성해야됩니다. 그래서 'as np'를 뒤에 작성함으로써 numpy를 사용할 시에 'np'라는 alias(별칭)만 작성을 하면 됩니다.
numpy는 np.array 함수를 활용하여 배열을 생성합니다. 이것이 ndarray입니다.
# 1차원 배열 생성
a = np.array([2,5,7])
# Dtype 설정시
a1 = np.array([1,2,3,4,5], float)
# 결과 : array([ 1., 2., 3., 4., 5.])
a2 = np.array(['1','2','3',4,5], np.float32)
# '1','2','3'의 값은 str이지만 float으로 출력 [단 'in'과 같은 str의 경우 ValueError 발생]
# 결과 : array([ 1., 2., 3., 4., 5.])
# 다른 타입이 들어올 경우 numpy는 상위 타입으로 캐스팅하여 저장한다.
a3 = np.array([1,2,3,4,5.0,'str'])
type(a[0])
# 결과 : numpy.str_
# 다차원 배열 생성
b = np.array([[1,2,3],[4,5,6]])
# 0으로 채워진 int 배열
np.zeros(10, dtype = int)
# 결과 : array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
# 3 * 5 부동 소수점 배열
np.ones((3,5), dtype = np.float32)
# 결과 :
array([[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]])
# 3.14로 재워진 4 * 5 배열
np.full((4,5), 3.14)
# 결과 :
array([[3.14, 3.14, 3.14, 3.14, 3.14],
[3.14, 3.14, 3.14, 3.14, 3.14],
[3.14, 3.14, 3.14, 3.14, 3.14],
[3.14, 3.14, 3.14, 3.14, 3.14]])
# empty - shape만 주어지고 비어있는 ndarray 생성, 메모리 초기화는 되지 않음 [ 사용빈도수가 적음]
np.empty(shape=(10,), dtype=np.int8)
# 결과 : array([ -32, -45, -108, 96, -17, 85, 0, 0, 2, 0], dtype=int8)
np.empty((4,5))
# 결과 :
array([[4.66825861e-310, 4.66826011e-310, 4.66826011e-310,
4.66826011e-310, 4.66826011e-310],
[4.66826011e-310, 4.66826011e-310, 4.66826011e-310,
4.66826011e-310, 4.66826011e-310],
[4.66826011e-310, 4.66826011e-310, 4.66826011e-310,
4.66826011e-310, 4.66826011e-310],
[4.66826011e-310, 0.00000000e+000, 0.00000000e+000,
0.00000000e+000, 0.00000000e+000]])
# 단위 행렬(i 행렬)을 생성
np.identity(4)
# 결과 :
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
# 대각선이 1인 행렬, k값의 시작 index의 변경이 가능
np.eye(N=3, M=4)
# 결과 :
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.]])
np.eye(3,5,k=2) # k 는 start index
# 결과 :
array([[0., 0., 1., 0., 0.],
[0., 0., 0., 1., 0.],
[0., 0., 0., 0., 1.]])
# 0 ~ 10 사이의 값으로 채워진 배열
np.arange(10)
# 결과 : array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
# 0 ~ 10 사이의 2간격의 값으로 채워진 배열
np.arange(0,10,2)
# 결과 : array([0, 2, 4, 6, 8])
# 0 ~ 1 사이에 같은 간격의 5개의 값으로 채워짐
np.linspace(0,1,5)
# 결과 : array([0. , 0.25, 0.5 , 0.75, 1. ])
위에서 언급해드렸지만 ndarray의 경우 같은 종류의 데이터만 배열에 담을수 있다는점을 알야두셔야합니다.
반응형
'Deep Learning' 카테고리의 다른 글
[Numpy] Array(배열)의 속성 [ndim, shape, size, dtype, itemsize, nbytes] (0) | 2022.07.07 |
---|
Comments