Numpy shape 확인 - Numpy shape hwag-in

array 그러니까 행렬이 있을 때 이게 몇행, 몇열 짜리 행렬인지 알아보고 싶을 때 사용합니다.

간단하게 array의 shape를 사용하면 됩니다.

data1 = np.loadtxt('csv파일명',delimiter=',') ## 1000행 6열짜리 csv 파일입니다.

data1 = np.asarray(data1)

data = np.matrix(data1,float)

위 작업은 그냥 예시로 보여드립니다. 아래 사진을 보면 확실히 아실 수 있습니다.

728x90

shape 함수를 통해 어레이의 형태를 확인할 수 있습니다.

>>> import numpy as np >>> arr = np.array([1,2,3,4,5]) >>> arr.shape (5,) >>> arr3 = np.array([[1,2,3,4], [5,6,7,8], [9,0,9,8]]) >>> arr3.shape (3, 4)

728x90

'짧은 코딩 > python' 카테고리의 다른 글

[파이썬] rgb to palette, python, 파이썬으로 rgb값을 색상표로 표현하기  (0) isinstance, 타입에 따른 조건 설정  (0) [넘파이, numpy] dtype, array 의 타입 확인, type  (0) 파이썬 리스트를 csv로 저장하기(list to csv)  (0) 넘파이 최대값 위치 찾기 / 넘파이 최소값 위치 찾기  (0)
2021.05.23
2021.05.12
2021.05.10
2021.05.09
2021.05.06

💡오늘 배울 내용

데이터는 숫자들의 배열로 이루어져 있습니다. 예를 들면, 이미지는 2차원 배열 데이터로 구성됩니다. 즉, 숫자 배열로 된 데이터를 처리하는 절차는 데이터 과학의 가장 기본이 됩니다. 오늘은 배열 데이터를 다룰 수 있는 파이썬 라이브러리인 넘파이(Numpy)의 개념과 기본 배열 생성에 대해 알아보겠습니다.

넘파이(Numpy)
n차원 배열 생성
shape 확인하기
ndim 확인하기
size 확인하기
dtype

🔎넘파이(Numpy)

넘파이는 Python에서 벡터와 행렬처럼 '수치연산'에 특화되어있는 라이브러리입니다. 선형대수와 매우 밀접한 연관이 있습니다. 내부적으로는 C로 구현되어있으며, 대규모 연산을 매우 빠른 속도로 수행합니다.

🔎N차원 배열 생성


n차원 배열에 대한 기본 개념입니다.
처음 배열부터 차례대로 1차원, 2차원, 3차원 배열이라고 부르며
1차원 배열 - axis(축) : 0으로 구성 / Vector라고 부름
2차원 배열 - axis(축) : 0, 1로 구성 / Matrix라고 부름(행렬)
3차원 배열 - axis(축) : 0, 1, 2로 구성 / Tensor라고 부름

import numpy as np

넘파이(numpy)를 사용하기 위해선, 우선 넘파이 라이브러리를 설치해야합니다.
설치되어 있다고 가정하고 넘파이를 사용하기 위해 import 해봅시다.

#1차원 배열 arr = np.array([1, 2, 3]) print(arr) >> [1 2 3] print(type(arr)) >> <class 'numpy.ndarray'>

넘파이 배열을 만들 때는 np.array()라는 메서드를 사용합니다. np.array() 메서드는 파이썬의 리스트를 인수로 받아 넘파이 라이브러리가 제공하는 특수한 형태의 배열(numpy.ndarray)을 반환합니다. type()함수를 통해 np.array() 메서드를 이용해 만든 배열의 타입을 확인해봅시다. 타입이 'numpy.ndarray'로 찍히는 것을 확인할 수 있습니다.

#2차원 배열 arr = np.array([[1, 2, 3], [4, 5, 6]]) print(arr) >> [[1 2 3] [4 5 6]]

np.array()메서드를 활용하여 2차원 배열을 만들어 보았습니다.

#튜플로 1차원 배열 만들기 tpl = (4, 5, 6) arr = np.array(tpl) print(arr) >> [4 5 6]#리스트로 2차원 배열 만들기 lst = [[1, 2, 3], [4, 5, 6]] arr = np.array(lst) print(arr) >> [[1 2 3] [4 5 6]]

이처럼 np.array() 메서드는 리스트는 물론, 튜플로도 N차원 배열을 만들 수 있습니다.

🔎shape 확인하기

shape으로 배열의 형상을 알 수 있습니다. 형상이란 N차원 배열에서 그 배열의 '각 차원의 크기(원소 수)'를 배열의 형상이라고 합니다.

#형상(shape) 확인하기 arr = np.array([1, 2, 3]) #1차원 배열 print(arr.shape) >> (3,) arr2 = np.array([[1, 2, 3],[4, 5, 6]]) #2차원 배열 print(arr2.shape) >> (2, 3)

확인하고 싶은 배열에 .shape을 더하면 해당 배열의 형상을 확인할 수 있습니다. 1차원 배열에서 (m, )은 m칸으로 구성된 1차원 배열이라는 의미입니다. 2차원 배열에서의 (m, n)는 m행 n열로 구성된 2차원 배열을 의미합니다. 3차원 배열에서 shape을 구하면 (층, 행, 열) 총 3가지 정보를 얻을 수 있습니다.

🔎ndim/size 확인하기

ndim은 해당 배열의 차원을, size는 해당 배열의 칸 수를 알 수 있습니다.

arr = np.array([1, 2, 3]) #1차원 배열 생성 print(arr.ndim) #해당 배열의 차원 확인하기 >> 1 print(arr.size) #해당 배열의 칸 수 확인하기 >> 3 arr2 = np.array([[1, 2, 3],[4, 5, 6]]) print(arr2.ndim) #해당 배열의 차원 확인하기 >> 2 print(arr2.size) #해당 배열의 칸 수 확인하기 >> 6

🔎dtype

dtype은 배열의 데이터 타입을 의미합니다. 어떠한 배열의 데이터 타입을 확인할때 사용하거나, 배열의 데이터 타입을 직접 지정해줄때 사용할 수 있습니다.

arr = np.array([1.1, 2.2, 3.3]) print(arr.dtype) >> float64 arr = np.array([1.1, 2.2, 3.3], dtype=int) print(arr) >> [1 2 3] print(arr.dtype) >> int32

상단의 예제는 dtpye으로 해당 배열의 데이터 타입을 확인하고(float64), 해당 배열의 데이터 타입을 int로 바꾸어 주는 예제입니다. dtype=int를 적용하여 배열을 출력해보면 float였던 데이터 타입이 정수로 바뀐 것을 확인할 수 있습니다.

arr = np.array([1, 2, 3, 0], dtype=bool) print(arr) >> [True True True False]

dtype을 이용하면 배열의 타입을 int, float는 물론 bool과 string으로도 바꾸어 줄 수 있습니다. 하지만 문자열이 들어있는 배열에서의 데이터 타입을 int로 바꾸는 등의 형변환은 할 수 없습니다.

관련 게시물

Toplist

최신 우편물

태그