데이터 분석에서 많이 쓰는 모듈을 말하자면 여러가지가 있지만 pandas나 numpy가 있다. 그 중 배열로 다룰 수 있는 numpy 모듈에 대해서 알아보겠다.
numpy에 대한 간단한 설명을 하자면 다음과 같다.
Numpy
- 배열 형태의 데이터 사용
- 파이썬 기반 데이터 분석 환경에서 행렬 및 벡터 연산에 필요한 다양한 함수 제공
- 메모리 소모가 많은 반복문 없이 전체 데이터 배열에 빠른 연산을 처리할 수 있는 표준 수학 함수
- 배열: 동일한 특성 및 일정한 규칙을 가지는 여러 개의 요소가 나열되어 있는 데이터 집합
- 파이썬 list 객체를 사용할 때 보다 Numpy의 ndarray 객체를 사용하면 연산 속도가 개선되어 더 많은 데이터를 더 빠르게 처리
Numpy의 배열에 대해서 간단하게 알아보자
Numpy 배열 :numpy.ndarray
- 다차원 배열(1차원,2차원,3차원)으로 입체적인 데이터 구조를 구성하고 여러개의 데이터 방향을 가진다.
- 배열 속성: shape,ndim,dtype 등
- 데이터방향: axis=0(행/높이),1(열/폭),2(채널/깊이)
사실 이런 설명만으로는 잘 모르니 직접 예시를 들어 설명하겠다.
기본적으로 numpy는 설치를 해야됨으로 import numpy를 실시해야 되고 편의상 np로 정의하겠다.
즉 수행 전에 import numpy as np 문장을 시행하겠다.
1차원 데이터의 생성은 언뜻보면 리스트와 비슷하지만 arr1의 type을 확인해보면 <class 'numpy.ndarray'>라는 타입이 나와 list가 아닌 array가 생성됨을 알 수 있다. np.array(data) 함수를 이용해 간단하게 배열을 생성할 수 있다.
위와 같이 shape 함수로 구조를 len 함수로 길이 , ndim함수로 차원, size로 배열의 크기를 알 수 있다.
또한 array의 타입을 변경하기 위해선 astype 함수가 필요하다. 기존 arr1은 dtype을 알아보았을 때 int형이다.
이를 float함수로 바꾸기 위해선 arr1.astype(float) 라는 코드를 수행시켜야 한다.
위와 같이 기존 array([1,2,3,4,5]) 가 출력값으로 나온거와 달리 array([1. ,2. ,3. ,4. ,5. ])으로 나타나면서 실수형으로 변환이 된 것을 알 수 있다. 그러나 타입을 바꾼 array를 쓰기 위해선 다시 재정의가 필요하다.
arr1은 현재 1차원이다. 이를 2차원으로 바꾸기 위해서는 reshape함수가 필요하다.
이 때 주의사항은 기존 배열의 요소 개수와 변환하려는 구조의 요소 개수가 일치해야한다. 이는 당연한 것으로 부족하면 에러가 발생하고 더 커지면 그 빈값을 어떻게 처리해야할 것인가를 생각해보면 된다.
위와 같이 arr2는 arr1와 달리 1,5 즉 1행 5열의 구성으로 변경됐음을 알 수 있다.
마지막으로 array의 정보를 알 수 있는 사용자 정의 함수 코드이다. 기존에 소개했던 함수를 모두 사용해서 간단하게 구현 해보았다.
format 함수로 출력값이 이쁘게 나올 수 있도록 하고 array의 구조, 차원, 타입, data의 구성요소를 출력해주는 함수이다. 간단하게 하나의 array를 구현하면
위와 같이 모든 정보가 다 나온다. 다음 글에서는 numpy의 다른 함수들과 2차원 배열 등을 소개하겠다.
자세한 코드는 https://github.com/winston1214/baseline_ML-> star와 팔로우 눌러주시면 감사하겠습니다.
'Python > python 기초' 카테고리의 다른 글
Numpy array - 4 (0) | 2020.01.07 |
---|---|
Numpy array - 3 (0) | 2020.01.07 |
Numpy array -2 (0) | 2020.01.07 |
Formatting (0) | 2020.01.05 |
Jupyter NoteBook 유용한 단축키 (0) | 2020.01.05 |
댓글