[Numpy] type()과 dtype()의 차이

Ethan·2022년 5월 19일
0

Numpy 라이브러리의 자료형은 파이썬 내장함수와 기본적으로 동일하다.
단, type(), dtype()은 약간의 차이가 있다.

Numpy | np.array.dtype
Python | type()

A= np.arange(6).reshape(2, 3)
print(A)
print(A.dtype)
print(type(A))

>>> [[0 1 2]
    [3 4 5]]
>>> int64
>>> <class 'numpy.ndarray'>


B = np.array([0, 1, 2, 3, 4, 5])  
print(B)
print(B.dtype)
print(type(B))

>>> [0 1 2 3 4 5]
>>> int64
>>> <class 'numpy.ndarray'>


C = np.array([0, 1, 2, 3, '4', 5])
print(C)
print(C.dtype)
print(type(C))

>>> ['0' '1' '2' '3' '4' '5']
>> <U21
>> <class 'numpy.ndarray'>


D = np.array([0, 1, 2, 3, [4, 5], 6])  # 이런 ndarray도 만들어질까?
print(D)
print(D.dtype)
print(type(D))

>>> [0 1 2 3 list([4, 5]) 6]
>>> object
>>> <class 'numpy.ndarray'>

dtype은 ndarray 원소의 데이터 타입을 반환한다.
반면 type(A)은 A의 데이터 타입을 반환한다.

D의 경우처럼 배열 내에 list가 포함된 배열을 만들 수도 있다.
하지만, 이 경우에도 배열 내 원소들의 데이터 타입이 일치해야 한다.
따라서 각 원소의 데이터 타입은 파이썬 내 최상위 클래스인 object 객체가 된다.

해당 기능은 현재 deprecated 됨

profile
재미있게 살고 싶은 대학원생

0개의 댓글