머신러닝 Machine Learning

ndarray 데이터 타입

디지털농담곰 2023. 12. 12. 00:00

 

ndarray 데이터 타입 

 

ndarray 내의 데이터값은 숫자 값, 문자열 값, 불 값 등이 모두 가능합니다. 

숫자형의 경우 

int형 ⇒8bit, 16bit, 32bit

unsigned int ⇒ 8bit, 16bit, 32b 

float형 ⇒ 16bi, 32bit, 64bir, 128bit

 

ndarray 내의 데이터 타입은 그 연산의 특성상 같은 데이터 타입만 가능합니다. 즉, 한 개의 ndarray 객체에는 int 와 float이 함께 존재할 수 없습니다. 

 

 

< 예시1 >

list1 = [1, 2, 3]

print(type(list1))

array1 = np.array(list1)

print(type(array1))

print(array1, array1.dtype)

 

< 결과 >

<class ‘list’>

<class ‘numpy.ndarray’>

[1 2 3] int32



리스트 자료형인 list1은 int 데이터 타입인 1, 2, 3을 가지고 있습니다. 해당 객체를 ndarray 타입으로 쉽게 변경이 가능합니다. 변경된 ndarray 값은 모두 int32 입니다. 

 

하지만 앞서 말씀드린바와 같이 ndarray 데이터 특성상 같은 데이터 타입만 가지고 있어야 한다고 했는데, 데이터 타입이 다른 경우도 가능은합니다. 만약 int와 str 값이 섞여 있는 list 객체를 ndarray로 변경 할 경우 데이터 크기가 더 큰 데이터 타입으로 형 변환을 일괄 적용하게 됩니다. 

 

 

< 예시2 >

list2 = [1, 2, ‘test’]

array2 = np.array(list2)

print(array2, array2.dtype)

 

list3 = [1, 2, 3.0]

array3 = np.array(list3)

print(array3, array3.dtype)

 

< 결과 >

<class ‘numpy.ndarray>

[‘1’, ‘2’, ‘test’] <U11

[1. 2. 3.] float64

 

이 처럼 ‘test’의 데이터 타입이 가장 크기 때문에 int인 1과 2 또한 str 타입으로 일괄 변경 되는걸 볼 수 있습니다. 



ndarray 데이터 타입 변경 방법 

ndarray 내 데이터 값의 타입은 astype()이라는 메서드를 사용하여 변경이 가능합니다. 

 

 

< 예시3 >

array_int = np.array([1, 2, 3])

array_float = array_int.astype(‘float64’)

print(array_float, array_float.dtype)

 

< 결과 >

[1. 2. 3.] float64



위에서 제시한 예시들과 함께 ndarray 타입과 변경 방법에 대해서 알아보았습니다.

 

감사합니다. 

 

'머신러닝 Machine Learning' 카테고리의 다른 글

Indexing 데이터셋 선택  (2) 2023.12.20
Reshape 차원과 크기 변경  (1) 2023.12.15
Numpy 넘파이  (0) 2023.12.10