python 为什么要用astype()函数对numpy数据类型进行转换,而不直接指定其dtype?float(64) float(32) int(64) int(32)(转换为整型int)
生活随笔
收集整理的這篇文章主要介紹了
python 为什么要用astype()函数对numpy数据类型进行转换,而不直接指定其dtype?float(64) float(32) int(64) int(32)(转换为整型int)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
numpy中的數(shù)據(jù)類型轉(zhuǎn)換,不能直接改原數(shù)據(jù)的dtype! 只能用函數(shù)astype()。否則你的元素個數(shù)可能會倍增或倍減,數(shù)值也會對應(yīng)不上!
第一種情況:
import numpy as npa = np.array([0.88518868, 0.4527473 ,0.61944059 ,0.1480421 ]) print(a) print(a.dtype)print('\n'+'-'*50+'\n')a.dtype = 'float32' print(a) print(a.dtype)結(jié)果:
[0.88518868 0.4527473 0.61944059 0.1480421 ] float64--------------------------------------------------[ 1.76177241e-06 1.84629714e+00 -6.12526950e+09 1.72637355e+007.94156442e-28 1.77986014e+00 1.07201006e-16 1.52304208e+00] float32第二種情況:
import numpy as npa = np.array([14555555554.88518868, 0.45274735555 ,0.61944059444 ,0.14804215564 ]) print(a) print(a.dtype)print('\n'+'-'*50+'\n')b= a.astype(np.float32) print(b) print(b.dtype)print('\n'+'-'*50+'\n')c= a.astype(np.float16) print(c) print(c.dtype)結(jié)果:
[1.45555556e+10 4.52747356e-01 6.19440594e-01 1.48042156e-01] float64--------------------------------------------------[1.4555556e+10 4.5274734e-01 6.1944062e-01 1.4804216e-01] float32--------------------------------------------------[ inf 0.4526 0.6196 0.1481] float16參考文章1:Numpy數(shù)據(jù)類型轉(zhuǎn)換astype,dtype
參考文章2:python強制類型轉(zhuǎn)換astype
參考文章3:numpy數(shù)據(jù)類型dtype轉(zhuǎn)換
總結(jié)
以上是生活随笔為你收集整理的python 为什么要用astype()函数对numpy数据类型进行转换,而不直接指定其dtype?float(64) float(32) int(64) int(32)(转换为整型int)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python opencv cv2.cv
- 下一篇: python中列表 元组 字典 集合的区