numpy 數據類型


numpy支持比Python更多種類的數值類型。下表列出了numpy中定義的不同數據類型。

數據類型 描述
bool_ 布爾型數據類型(True 或者 False)
int_ 默認整數,相當於 C 的long,通常為int32或int64
intc 相當於 C 的int,通常為int32或int64
intp 用於索引的整數,相當於 C 的size_t,通常為int32或int64
int8 1個字節(-128 ~ 127)
int16 16 位整數(-32768 ~ 32767)
int32 32 位整數(-2147483648 ~ 2147483647)
int64 64 位整數(-9223372036854775808 ~ 9223372036854775807)
uint8 8 位無符號整數(0 ~ 255)
uint16 16 位無符號整數(0 ~ 65535)
uint32 32 位無符號整數(0 ~ 4294967295)
uint64 64 位無符號整數(0 ~ 18446744073709551615)
float_ float64的簡寫
float16 半精度浮點:1位符號位,5 位指數,10 位尾數
float32 單精度浮點:1位符號位,8 位指數,23 位尾數
float64 雙精度浮點:1位符號位,11 位指數,52 位尾數
complex_ complex128的簡寫,即 128 位復數
complex64 復數,由兩個 32 位浮點表示(實部和虛部)
complex128 復數,由兩個 64 位浮點表示(實部和虛部)
complex256 復數,128位
object Python對象類型
string_ 修正的ASCII字符串類型
unicode_ 修正的Unicode類型

小技巧:int8,int16,int32,int64 可替換為等價的字符串 'i1','i2','i4',其他類型也有類似的縮寫。

每個內建類型都有一個唯一的字符代碼:

  • 'b':布爾值
  • 'i':符號整數
  • 'u':無符號整數
  • 'f':浮點
  • 'c':復數浮點
  • 'm':時間間隔
  • 'M':日期時間
  • 'O':Python 對象
  • 'S', 'a':字符串
  • 'U':Unicode
  • 'V':原始數據(void)

np.astype:顯式地轉換數據類型

使用astype時總是生成一個新的數組,即使你傳入的dtype與原來的一樣。

>>> a = np.arange(1, 6) >>> a array([1, 2, 3, 4, 5]) >>> a.dtype dtype('int32') >>> float_a = a.astype(np.float64) >>> float_a.dtype dtype('float64') # 字符串轉浮點
>>> numeric_string = np.array(['1.23', '-1.20', '33'], dtype=np.string_) >>> numeric_string array([b'1.23', b'-1.20', b'33'], dtype='|S5') >>> numeric_string.astype(float) array([ 1.23, -1.2 , 33. ]) # 使用其它數組的dtype
>>> int_array = np.arange(4) >>> old = np.array([3.4,2.4,11.3]) >>> new = old.astype(int_array.dtype) >>> old array([ 3.4,  2.4, 11.3]) >>> new array([ 3,  2, 11])

numpy還有一些預先定義的特殊值:

比如:np.nan、np.pi、np.e

np.nan: 缺失值,或者理解為'不是一個數'

import numpy as np a = np.array([np.nan,  1,2,np.nan,3,4,5]) a[~np.isnan(a)] b = np.array([1,  2+6j,  5,  3.5+5j]) b[np.iscomplex(b)]

np.pi:圓周率 3.1415926...

np.e:自然數e 2.718281828459045...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM