NumPy 資料型別和轉換
Jinku Hu
2023年1月30日
2018年7月13日
NumPy 裡面的資料型別 dtype
跟 Python 內建的資料型別有一些不同的地方,它有精度更高的型別,這跟它用於資料計算的特性是相關的。
NumPy 的資料型別
型別 | 說明 |
---|---|
bool |
布林型 |
int8 |
8 位有符號整數 |
int16 |
16 位有符號整數 |
int32 |
32 位有符號整數 |
int64 |
64 位有符號整數 |
uint8 |
8 位無符號整數 |
uint16 |
16 位無符號整數 |
uint32 |
32 位無符號整數 |
uint64 |
64 位無符號整數 |
float16 |
16 位浮點數 |
float32 |
32 位浮點數 |
float64 |
64 位浮點數 |
complex64 |
64 位複數 |
complex128 |
128 位複數 |
在新建一個 ndarray
資料時,你可以通過字串或者 NumPy
庫裡面的資料型別常量來制定元素的資料型別
import numpy as np
# 通過字串來指定資料型別
test = np.array([4, 5, 6], dtype='int64')
#通過 np 內的常量來指定
test = np.array([7, 8, 8], dtype=np.int64)
資料型別轉換
在例項建立好了之後,可以通過資料型別轉換方法 astype()
將元素的型別變成另外的一種,比如從整型變到浮點型,等等。
>>> import numpy as np
>>> test = np.array([11, 12, 13, 14], dtype="int32")
>>> x = test.astype('float32')
>>> x
array([11., 12., 13., 14.], dtype=float32)
>>> test, test.dtype
(array([11, 12, 13, 14]), dtype('int32'))
注意
資料型別轉換方法只會返回一個全新的陣列,而原陣列例項的資料和資訊並沒有改變。
Author: Jinku Hu
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn