最近中文字幕国语免费完整,中文亚洲无线码49vv,中文无码热在线视频,亚洲自偷自拍熟女另类,中文字幕高清av在线

當(dāng)前位置: 首頁 > 開發(fā)者資訊

python中dtype的用法,如何選擇合適的dtype來存儲數(shù)據(jù)?

  在Python中,dtype是NumPy和Pandas等庫中用于指定數(shù)據(jù)存儲方式的核心概念。合理選擇dtype可以顯著優(yōu)化內(nèi)存使用和計算效率。創(chuàng)建數(shù)組時可通過dtype參數(shù)指定類型,如int32、float64、bool,或使用astype()方法轉(zhuǎn)換類型。以下是詳細指南,跟著小編一起詳細了解下。

  一、NumPy中的dtype用法

  1. 基本語法

  pythonimport numpy as np# 創(chuàng)建數(shù)組時指定dtypearr = np.array([1, 2, 3], dtype='int32') # 32位整數(shù)arr_float = np.array([1.0, 2.0], dtype='float64') # 64位浮點數(shù)

  2. 常用dtype類型

  基礎(chǔ)類型

  ? int64 ?:64位整數(shù)

  ? float64 ?:64位浮點數(shù)

  ? complex128 ?:128位復(fù)數(shù)

  擴展類型

  ? float32 ?:32位浮點數(shù)

  ? int32 ?:32位整數(shù)

  ? int16 ?:16位整數(shù)

  特殊類型

  ? bool ?:布爾類型

  ? string ?:字符數(shù)組

  3. 動態(tài)推斷與轉(zhuǎn)換

  python# 自動推斷dtypearr_auto = np.array([1, 2.5, True]) # 默認升級為float64(混合類型)# 顯式轉(zhuǎn)換dtypearr_int = arr_auto.astype('int32') # 浮點轉(zhuǎn)整數(shù)(截斷小數(shù))

  二、Pandas中的dtype用法

  1. 指定列的數(shù)據(jù)類型

  pythonimport pandas as pddf = pd.DataFrame({'A': [1, 2], 'B': ['x', 'y']})# 創(chuàng)建時指定dtypedf = pd.DataFrame({'A': pd.Series([1, 2], dtype='int16')})# 修改現(xiàn)有列的dtypedf['A'] = df['A'].astype('float32')

  2. 高效存儲類型

  分類數(shù)據(jù):用category減少內(nèi)存(適用于重復(fù)字符串)

  pythondf['B'] = df['B'].astype('category')

  時間數(shù)據(jù):用datetime64

  pythondf['date'] = pd.to_datetime(df['date'], dtype='datetime64[ns]')

python中dtype的用法.jpg

  三、如何選擇合適的dtype?

  1. 根據(jù)數(shù)據(jù)范圍選擇整數(shù)類型

  小范圍整數(shù)(0-255):uint8(節(jié)省75%內(nèi)存,相比int32)

  大整數(shù)或需負數(shù):int32/int64

  2. 浮點數(shù)精度權(quán)衡

  默認float64(15位精度),若內(nèi)存敏感且允許精度損失,可用float32(7位精度)。

  3. 字符串優(yōu)化

  固定長度字符串:U<n>(如U10限制10字符)

  變長字符串:Pandas默認object類型,但category更高效。

  4. 布爾與特殊類型

  布爾值:bool(僅1字節(jié))

  復(fù)數(shù):complex128

  四、內(nèi)存優(yōu)化實戰(zhàn)

  python# 示例:優(yōu)化DataFrame內(nèi)存df = pd.DataFrame({'A': range(1000000)})print(df.memory_usage(deep=True)) # 原始內(nèi)存# 優(yōu)化為最小類型df['A'] = df['A'].astype('int16') # 內(nèi)存減少75%(int32→int16)

  五、注意事項

  避免隱式類型升級:混合類型(如[1, 2.5])會自動轉(zhuǎn)為float64。

  精度損失風(fēng)險:float32可能在大數(shù)計算中產(chǎn)生誤差。

  Pandas的object陷阱:字符串列默認object類型,需手動轉(zhuǎn)category或string(Pandas 1.0+)。

  數(shù)值型:優(yōu)先選最小滿足需求的類型(如int8 > int32)。

  字符串:重復(fù)值多用category,固定長度用U<n>。

  時間序列:始終用datetime64。

  通過df.dtypes檢查當(dāng)前類型,df.memory_usage()監(jiān)控內(nèi)存。

  合理選擇dtype可減少內(nèi)存占用50%-90%,尤其在處理大規(guī)模數(shù)據(jù)時至關(guān)重要。

  在Python中,dtype是NumPy和Pandas中用于指定數(shù)據(jù)存儲方式的核心參數(shù),直接影響內(nèi)存占用、計算效率和功能支持。以上就是python中dtype的用法介紹,趕緊學(xué)習(xí)起來吧。


猜你喜歡