本教程適合於numpy基礎入門,更多詳盡內容請閱讀官網http://www.numpy.org/,此篇爲numpy基礎學習教程系列之數據類型篇,傾向於實踐用法,後續還會推出一系列numpy其它方面的教程,歡迎廣大圈友一起交流學習,並指出其中的錯誤。
注意:以下np爲import numpy as np中的np標識符
numpy中,大部分數據類型名是以數字結尾的,這個數字表示其在內存中佔用的位數。
注意:每一種數據類型,都有對應的轉換函數。
1. 數據類型對象
數據類型對象是numpy.dtype類的實例,數據類型對象可以給出單個元素在內存中所佔用的字節數
>>> a = np.array([1,2,3],dtype='int64')
>>> a.dtype.itemsize
8
可以將兩個字符作爲參數傳給數據類型的構造函數,第一個字符表示數據類型,第二個字符表示該類型在內存中佔用的字節數(2、4、8分別代表精度爲16、32、64的浮點數)
>>> np.dtype('f8')
dtype('float64')
dtype類有很多屬性
>>> t = np.dtype("Float64")
>>> t.char
'd'
>>> t.str
'<f8'
注意:str屬性可以給出數據類型的字符串表示,該字符串的首個字符表示字節序,後面如果還有字符的話,將是一個字符編碼,接着一個數字表示每個數組元素存儲所需的字節數。
字節序是指位長爲32或64的字(word)存儲的順序,包括大端序和小端序。大端序是將最高位字節存儲在最低的內存地址處,用>表示;與之相反,小端序是將最低位字節存儲在最低的內存地址處,用<表
2. 自定義數據類型
自定義數據類型是一種異構數據類型,可以當做用來記錄電子表格或數據庫記錄的數據結構
>>> t =np.dtype([('name',str,40),('numitems','int32'),('price','float32')])
>>> t
dtype([('name', 'S40'), ('numitems', '<i4'),('price', '<f4')])
查看某一字段的數據類型
>>> t['name']
dtype('S40')
在用array創建數組時,如果沒有在參數中指定數據類型,則默認時浮點數類型。創建自定義數據類型數組時,必須指定數據類型,否則將觸發TypeError
>>> items =np.array([("Meaning of lifeDVD",42,3.14),("Butter",13,2.72)],dtype=t)
>>> items[1]
('Butter', 13, 2.7200000286102295)