ndarray 的數據類型
數據類型,即 dtype ,也是一個特殊的對象, 它包含了ndarray須要爲某一種類型數據所申明的內存塊信息(也成爲了元數據,即表示數據的數據)python
dtype是NumPy可以與琪他系統數據靈活交互的緣由。一般,其餘系統提供一個硬盤或內存與數據的對應關係,使得利用C或Fortran等底層語言讀寫數據變得十分方便。數組
名稱 | 描述 |
---|---|
bool_ | 布爾型數據類型(True 或者 False) |
int_ | 默認的整數類型(相似於 C 語言中的 long,int32 或 int64) |
intc | 與 C 的 int 類型同樣,通常是 int32 或 int 64 |
intp | 用於索引的整數類型(相似於 C 的 ssize_t,通常狀況下仍然是 int32 或 int64) |
int8 | 字節(-128 to 127) |
int16 | 整數(-32768 to 32767) |
int32 | 整數(-2147483648 to 2147483647) |
int64 | 整數(-9223372036854775808 to 9223372036854775807) |
uint8 | 無符號整數(0 to 255) |
uint16 | 無符號整數(0 to 65535) |
uint32 | 無符號整數(0 to 4294967295) |
uint64 | 無符號整數(0 to 18446744073709551615) |
float_ | float64 類型的簡寫 |
float16 | 半精度浮點數,包括:1 個符號位,5 個指數位,10 個尾數位 |
float32 | 單精度浮點數,包括:1 個符號位,8 個指數位,23 個尾數位 |
float64 | 雙精度浮點數,包括:1 個符號位,11 個指數位,52 個尾數位 |
complex_ | complex128 類型的簡寫,即 128 位複數 |
complex64 | 複數,表示雙 32 位浮點數(實數部分和虛數部分) |
complex128 | 複數,表示雙 64 位浮點數(實數部分和虛數部分) |
使用astype方法來顯式的轉換數組的數據類型ui
arr = np.array([1,2,3,4,5]) print(arr.dtype) print(arr) float_arr = arr.astype('float32')#也能夠寫做 arr.astype(np.float32) print(float_arr.dtype) print(float_arr)
int32 [1 2 3 4 5] float32 [1. 2. 3. 4. 5.]spa
注意:將內容爲數字的字符串數組轉爲數字是能夠的,當內容是浮點型數字的時候只能轉成 float,不能 int,只有是整數的時候才能夠轉成intcode
用其餘數組的dtype來轉換數據類型:對象
int_arr = np.arange(10) calibers = np.array([.22, .270, .357], dtype=np.float64) print(calibers) arr_last = int_arr.astype(calibers.dtype) print(arr_last.dtype) print(arr_last)
[0.22 0.27 0.357] float64 [0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]索引