본문 바로가기
Python

[Python] Numpy Shape()

by Henry Cho 2022. 7. 12.
728x90

Numpy Shape()


포스트 난이도: HOO_Middle

 

[Notice] 포스트 난이도에 대한 설명

안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다

whoishoo.tistory.com


# Numpy Shape

Numpy의 기능 중 하나인 Shape attirbute는 행렬의 차원 또는 배열을 다룬다.

한마디로 데이터 테이블을 수정하거나 수치를 산출하는 데 사용되는 기능이 shape()이다.

데이터 사이언스와 같은 프로젝트 특성상 여러 데이터셋을 사용하고 데이터셋 안에서도 여러 데이터 테이블을 사용한다.

데이터 테이블에는 한가지 attribute만 존재하지 않고 여러 개의 attributes들이 존재할 수가 있는데 이때 테이블을 다루는 데 사용하는 기능이 바로 shape()인 셈이다.

그렇다 보니 shape() 데이터를 다루는 프로젝트를 수행하는 데 있어서 많이 사용되다 보니 기본적으로 알고 있어야 하는 기능 중 하나이다.

shape()의 기능을 사용하는데 있어서 복잡하지 않는 기능이기에 쉽게 익힐 수 있고 데이터를 수치로 파악하는데 도움이 많이 되는 기본 기능이다.


# shape() 사용 방법

shape 기능은 numpy 라이브러리 중 하나의 기능이기 때문에 당연히 numpy 라이브러리를 import 해주어야 한다.

import numpy as np

shape 기능의 기본 작성 방법은 아래와 같다.

np.shape()

np.shape() 괄호 안에는 만들어진 배열을 입력해주면 된다.

import numpy as np

HOO = np.array([[1, 2], [3, 4]])
print(np.shape(HOO))
(2, 2)

2차 배열(Two demensional array)이 만들어지기 때문에 shape를 통해 산출되는 배열의 값이 행과 열 (2, 2)가 된다.

여기서 np와 print를 굳이 사용하지 않아도 HOO 배열에 대한 shape 출력이 가능하다.

import numpy as np

HOO = np.array([[1, 2], [3, 4]])
HOO.shape
(2, 2)

HOO라는 배열이 이미 선언되어 있기 때문에 HOO.shape를 통해 shape 기능을 HOO 배열에 사용할 수 있다.

shape() 기능을 실제로 데이터 사이언스 프로젝트에서 사용하는 예제를 살펴보도록 하자.

import pandas as pd

HOO_test = pd.read_csv('국가어항+일반현황.csv', encoding = 'cp949')
HOO_test.head()

우선 데이터 테이블을 판다스를 통해서 읽어오고 head() 함수 또는 기능을 통해서 데이터셋 또는 데이터 테이블 안의 데이터를 살펴볼 수 있다.

하지만 데이터를 일일히 보고 싶은 것이 아니라 데이터셋에 포함된 데이터의 행과 열 개수를 확인하고 싶다면 굳이 head() 사용하지 않고 shape()를 사용하면 된다.

import pandas as pd

HOO_test = pd.read_csv('국가어항+일반현황.csv', encoding = 'cp949')
HOO_test.shape
(49, 57)

head()를 대신하여 shape() 사용하면 해당 데이터셋은 2차 배열로 구성된 테이블이며 49와 57의 행과 열을 포함하고 있다는 것을 알 수 있다.

이런 방식으로 np.shape()를 사용하기 보다는 위와 같은 방식을 통해서 실제로 프로젝트 내에서 사용이 많이 된다.

하지만 np.shape()가 기본적인 작성 방법이니 알고는 있어야 한다.


# 예제 데이터 출처

해양수산빅데이터 거래소: 국가어항 일반현황

https://www.bigdata-sea.kr/datasearch/issue/view.do?prodId=PROD_000045 

 

해양수산빅데이터 거래소

해양수산빅데이터 거래소

www.bigdata-sea.kr


 

 

728x90

댓글