NumPy 미리 보기
0. INTRO
NumPy의 가장 기본적인 코드를 바탕으로 NumPy의 데이터 타입을 이해하자. 넘파이는 오픈 라이브러리 이므로 넘파이 코드를 사용하기 전에 라이브러리 설치와 함수 호출은 필수적이다. 다음과 같은 코드를 사용하여 넘 파이를 호출해두자.
import numpy as np
1. 배열 타입 생성 코드 _ np.arange(변수)
넘 파이에 사용되는 데이터들은 array라 불리는 데이터 형태를 가지고 있다. 데이터 형태에 대해 알아보기 전에 가장 먼저 np.arrange(변수)를 이용하여 데이터 행을 생성해보자. 다음의 예시 코드를 보자.
L=np.arange(10)
코드 결과:
리스트와 동일한 점은 인덱스를 사용하여 데이터를 호출할 수 있다는 점이다. 하지만 분명한 것은 데이터의 형태가 다르다. 이 array 타입의 데이터는 도대체 무엇일까?
2. 다양한 데이터 유형
일반적으로 파이썬에서 잘 알려진 데이터 유형은 int, float, 그리고 chr 등으로 데이터 유형이 제한적이다. 놀랍게도 numpy에는 다양한 유형의 숫자형 데이터가 존재한다. 예를 들어, 단순한 정수 형태의 데이터도 numpy에서는 int8, int16, int 32, int64로 정수의 범위에 따라 데이터 형태를 다르게 분류한다. 이렇게 데이터를 다양하게 객체화하여 사용하기 때문에 넘 파이는 수치해석에 아주 유용하다.
수치형 데이터의 유형을 다음과 같은 표로 정리해두겠다.
데이터 유형 | 데이터 범위 |
int8 | -128 ~ 127 |
int16 | -32768 ~ 32767 |
int32 | -231 ~ 231 - 1 |
int64 | -263 ~ 263 -1 |
float16 | 1비트의 부호자리, 지수자리 5비트, 가수자리 10비트 |
float32 | 1비트의 부호자리, 지수자리 8비트, 가수자리 23비트 |
float64 | 1비트의 부호자리, 지수자리 11비트, 가수자리 52비트 |
참고로 arrange 함수에 데이터 유형을 선언하여 배열을 생성하는 방법이 있다. 다음을 참고하자.
L=np.arange(10, dtype = np.float16)
그래서 array 유형은 무엇인가?
3. 수치와 형태를 가지는 array 유형
Array 형태의 데이터는 리스트와 유사하지만, 메모리의 할당 공간에 해당하는 주소가 연속적이라는 점이 다르다. 리스트의 경우, 메모리 할당 주소가 임의로 지정되므로 메모리 공간의 크기를 할당할 필요가 없다. 하지만, array 유형은 메모리의 주소가 연속적임으로 메모리 공간 크기를 할당해야 하는 불편함이 존재한다. 그래서 넘 파이에서는 데이터 유형을 다양하게 나누어 보다 메모리 공간을 효율적으로 사용하는 것이다.
이 Array 형태의 데이터는 기본적으로 두 가지 속성을 가지고 있다. 가장 먼저, 앞서 설명한 수치 속성은 dtype으로 정의가 가능하다. array type의 변수 L이 어떤 수치 속성을 가지고 있는지 확인하려면 다음의 예시 코드를 참조하자.
L=np.arange(10)
L.dtype
그리고 array type의 데이터에는 형태(shape) 속성이 존재한다. 이 속성은 차원을 정의하는데 아주 유용한데, 위에서 사용한 L 변수와 같은 경우 형태 속성을 확인하면 (10, )라는 결괏값이 도출된다. 배열의 차원이 많아질수록 형태가 달라지게 된다. 형태 속성을 반환하는 코드는 다음과 같다.
L.shape
* 언급한 속성 외에도 다른 속성들이 존재한다는 것을 명시해두자.
'COMPUTER SCIENCE > Python' 카테고리의 다른 글
[NumPy] 행렬 만들기 _ mat 함수 (0) | 2022.03.12 |
---|---|
[NumPy] 1차원 배열 데이터 조작 (0) | 2022.03.04 |
NumPy _ 파이썬의 배열 (0) | 2022.03.04 |
코딩 테스트 준비하기 _ Python3 (0) | 2022.01.07 |
파이참 _파이썬 통합 개발 환경(IDE) 다운로드 (0) | 2021.06.13 |