淺談python 中的 type(), dtype(), astype()的區(qū)別
如下所示:
函數(shù) 說明 type() 返回數(shù)據(jù)結(jié)構(gòu)類型(list、dict、numpy.ndarray 等) dtype()返回數(shù)據(jù)元素的數(shù)據(jù)類型(int、float等)
備注:1)由于 list、dict 等可以包含不同的數(shù)據(jù)類型,因此不可調(diào)用dtype()函數(shù)
2)np.array 中要求所有元素屬于同一數(shù)據(jù)類型,因此可調(diào)用dtype()函數(shù)
astype()改變np.array中所有數(shù)據(jù)元素的數(shù)據(jù)類型。
備注:能用dtype() 才能用 astype()
測試代碼:
import numpy as npclass Myclass(): pass a = [[1,2,3],[4,5,6]]b = {’a’:1,’b’:2,’c’:3}c = np.array([1,2,3])d = Myclass()e = np.linspace(1,5,10)c_ = c.astype(np.float)f = 10 print('type(a)=',type(a))print('type(b)=',type(b))print('type(c)=',type(c))print('type(d)=',type(d))print('type(e)=',type(e))print('type(f)=',type(f))print('type(c_)=',type(c_)) # print(a.dtype) ## AttributeError: ’list’ object has no attribute ’dtype’# print(b.dtype) ## AttributeError: ’dict’ object has no attribute ’dtype’print(c.dtype)# print(d.dtype) ## AttributeError: ’Myclass’ object has no attribute ’dtype’print(e.dtype)print(c_.dtype)# print(f.dtype) ## AttributeError: ’int’ object has no attribute ’dtype’ # print(a.astype(np.int)) ## AttributeError: ’list’ object has no attribute ’astype’# print(b.astype(np.int)) ## AttributeError: ’dict’ object has no attribute ’astype’print(c.astype(np.int))# print(d.astype(np.int)) ## AttributeError: ’Myclass’ object has no attribute ’astype’print(e.astype(np.int))# print(f.astype(np.int)) ## AttributeError: ’int’ object has no attribute ’astype’
補充知識:pandas astype()錯誤
由于數(shù)據(jù)出現(xiàn)錯誤
DataError: No numeric types to aggregate
改正以后才認(rèn)識到astype的重要性。
Top15[’populations’] = Top15[’Energy Supply’].div(Top15[’Energy Supply per Capita’]).astype(float)df_mean = ((df.set_index(’Continent’).groupby(level=0)[’populations’].agg({’mean’ : np.mean})))#加了astype(float)后無錯誤
以上這篇淺談python 中的 type(), dtype(), astype()的區(qū)別就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
