List shape 확인 - List shape hwag-in

List shape 확인 - List shape hwag-in

안녕하세요.

이번 포스팅에서는 넘파이 배열의 선언 및 크기, 배열 요소들의 타입을 확인하는 방법에 대해 설명드리고자 합니다.

Numpy 배열은 행렬로 구성된 데이터를 분석하는데에 특화된 데이터로써, 데이터 분석에서 자주 쓰이는 모듈로, 자주 사용되는 모듈이오니 잘 알고 계시면 좋을 것 같습니다.


1. Numpy Module Import

Numpy Array를 사용하기 위해서는 Numpy 모듈에 대한 참조를 수행해야 합니다. 그래서 가장 처음에 Numpy 모듈을 Import 해주는 작업을 해줍니다.

2. Numpy Array 선언

Numpy Array 정의 방법에는 다양한 방법이 있으나, Python에서 사용하는 리스트 변수 선언 방법과 가장 기본적인 방법으로 Array을 선언하는 방법을 나열하여 비교할 수 있도록 했습니다.

In [2]:

# 일반 python 리스트 정의
data = [1,2,3,4,5]
data

In [3]:

# 일반 python 리스트 정의
data2 = [1,2,3,3.5,4]
data2

Numpy Array 변수를 선언하는 방법은 np.array 함수의 괄호 ()에 선언해주고 싶은 리스트, 튜플 데이터를 넣어줍니다.

저는 data 라는 리스트 변수를 앞에서 선언하여 넣어주었지만 괄호 내에 리스트 [1,2,3,4,5]와 같은 형태를 넣어주어도 됩니다.

In [4]:

# numpy를 이용해서 array 정의
# 위에서 정의한 python list를 이용
arr = np.array(data)
arr

3. Numpy 배열의 크기 확인 np.shape

np.shape 명령어를 통해 해당 넘파이 array의 크기를 확인할 수 있습니다. shape를 확인함으로써 몇개의 데이터가 몇차원으로 존재하는지를 알 수 있어서 데이터 크기를 처음에 확인할 때 자주 사용합니다. 아래에 있는 aar2.shape는 출력으로 (5,)을 나타내는데 1차원 데이터이고 5개의 요소가 있다는 것을 확인할 수 있다. aar4의 shape는 (4,3)으로 2차원 데이터로 '4행3열'의 크기를 가진다는 것을 나타냅니다.

In [5]:

# array의 형태(크기)를 확인
arr.shape

In [6]:

# 바로 리스틀르 넣어줌으로써 array 만들기
arr2 = np.array([1,2,3,4,5])
arr2

4. Numpy 배열 요소의 타입 확인 np.dtype

앞에서 살펴본 arr, arr2는 정수만 포함된 array의 자료형으로 'int32'으로 확인이 가능하며, 요소들 중 실수가 표함된 arr3의 경우 float64로 나타나게 됩니다.

In [8]:

# array의 자료형을 확인
arr2.dtype

In [9]:

arr3 = np.array(data2)
arr3

Out[9]:

array([1. , 2. , 3. , 3.5, 4. ])

In [12]:

arr4 = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
arr4

Out[12]:

array([[ 1,  2,  3],
       [ 4,  5,  6],
       [ 7,  8,  9],
       [10, 11, 12]])

다음은 Numpy Array 선언을 편하게 하기 위한 여러 함수들에 대해 포스팅하겠습니다.

글 읽어주셔서 감사합니다.

 백준을 풀 때 numpy를 이용할 일이 가끔 있었습니다. 이번 시간에는 어떻게 numpy array를 초기화 하고, numpy 배열을 어떻게 파이썬의 리스트로 바꾸는지 보도록 하겠습니다. 그리고 list를 어떻게 넘파이 배열로 바꾸는 지도 배워봅시다.


 보통 저는 int로 이루어진 배열을 많이 이용하니, 이걸 기준으로 설명해 보도록 하겠습니다.

List shape 확인 - List shape hwag-in

 코드를 보시면, li는 [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]입니다. 2차원 리스트임을 알 수 있어요. 이것을 그대로 np.array의 인자로 넘겨주면 됩니다. 결과는 어떻게 나올까요?

List shape 확인 - List shape hwag-in

 3행 4열짜리 numpy array가 만들어 졌습니다. 

List shape 확인 - List shape hwag-in

 이제 다른 것을 해 봅시다. 1행 10열짜리 int list가 들어갑니다. 그런데, 이것을 2행 5열짜리로 초기화 하고 싶어요. 그럴 때는 어떻게 할까요? 그냥 1행 10열짜리 list를 array의 인자로 두고, 그것의 결과값을 reshape 시켜버리면 되어요. reshape에 들어간 (2, 5)는 2행 5열을 의미합니다.

List shape 확인 - List shape hwag-in

 결과는 위와 같습니다. 그러면 1차원 list를 3차원 numpy array로 초기화 할 수 있을까요?

List shape 확인 - List shape hwag-in

 ndmin에 3을 넣어 봅시다.

List shape 확인 - List shape hwag-in

 그러면 [[[1, 2]]]로 초기화가 되었음을 알 수 있는데요.

List shape 확인 - List shape hwag-in

 shape를 확인해 보면 (1, 1, 2)임을 알 수 있어요. 3차원이다. 정도만 짚고 넘어가시면 됩니다. 3차원 배열? 1행 2열짜리가 하나 쌓여 있다? 정도로만 짚고 넘어가도 좋겠네요. 모든 요소를 0으로 초기화 하는 것은 어떻게 하면 될까요?

List shape 확인 - List shape hwag-in

 np에는 zeros가 있습니다. 이것은 모든 요소를 0으로 초기화 하는 것입니다. dtype은 int로 썼습니다.

List shape 확인 - List shape hwag-in

 그러면 0으로 초기화가 된 numpy array가 딱 하고 나옵니다. 0으로 초기화 하는 것은 자주 쓰일 법 하니 익혀두면 좋을 듯 싶네요.


 이제 numpy array를 list로 바꾸는 것도 배워봅시다.

List shape 확인 - List shape hwag-in

 단지, tolist를 호출해 주면 됩니다. 이름 그대로 list로 변환해 줍니다.

List shape 확인 - List shape hwag-in

 실행 결과는 위와 같습니다.