更新時間:2021-06-09 來源:黑馬程序員 瀏覽量:
NumPy支持比Python更多的數(shù)據(jù)類型。下面介紹一些常用的數(shù)據(jù)類型,以及這些數(shù)據(jù)類型之間的轉(zhuǎn)換。
如前面所述,通過“ndarray.dtype”可以創(chuàng)建一個表示數(shù)據(jù)類型的對象。要想獲取數(shù)據(jù)類型的名稱,則需要訪問name屬性進行獲取,示例代碼如下。
In [20]: data_one = np.array([[1, 2, 3], [4, 5, 6]])
In [21]: data_one.dtype.name
Out[21]: 'int32'
在默認情況下,64位windows系統(tǒng)輸出的結(jié)果為int32, 64位Linux或macOS系統(tǒng)輸出結(jié)果為int64,當然也可以通過dtype來指定數(shù)據(jù)類型的長度。
上述代碼中,使用dtype屬性查看data_one對象的類型,輸出結(jié)果是int32。從數(shù)據(jù)類型的命名方式上可以看出,NumPy的數(shù)據(jù)類型是由一個類型名(如int、float)和元素位長的數(shù)字組成。
如果在創(chuàng)建數(shù)組時,沒有顯式地指明數(shù)據(jù)的類型,則可以根據(jù)列表或元組中的元素類型推導(dǎo)出來。默認情況下,通過zeros()、ones()、empty()函數(shù)創(chuàng)建的數(shù)組中數(shù)據(jù)類型為float64。
表1羅列了NumPy中常用的數(shù)據(jù)類型。
表1 NumPy的數(shù)據(jù)類型
數(shù)據(jù)類型 | 含義 |
---|---|
bool | 布爾類型,值為True或False |
int8、uint8 | 有符號和無符號的8位整數(shù) |
int16、uint16 | 有符號和無符號的16位整數(shù) |
int32、uint32 | 有符號和無符號的32位整數(shù) |
int64、uint64 | 有符號和無符號的64位整數(shù) |
float16 | 半精度浮點數(shù)(16位) |
float32 | 半精度浮點數(shù)(32位) |
float64 | 半精度浮點數(shù)(64位) |
complex64 | 復(fù)數(shù),分別用兩個32位浮點數(shù)表示實部和虛部 |
complex128 | 復(fù)數(shù),分別用兩個64位浮點數(shù)表示實部和虛部 |
object | Python對象 |
string_ | 固定長度的字符串類型 |
unicode | 固定長度的unicode類型 |
表2 NumPy內(nèi)置特征碼
特征碼 | 含義 |
---|---|
b | 布爾型 |
u | 無符號整型 |
c | 復(fù)數(shù)類型 |
S,a | 字節(jié)字符串 |
V | 原始數(shù)據(jù) |
i | 有符號整型 |
f | 浮點型 |
O | Python對象 |
U | unicode字符串 |
Python不同數(shù)據(jù)類型之間可以相互轉(zhuǎn)換嗎?
Python轉(zhuǎn)換數(shù)據(jù)類型的函數(shù)有哪些?