NumPy 資料型別和轉換

Jinku Hu 2023年1月30日 2018年7月13日
  1. NumPy 的資料型別
  2. 資料型別轉換
NumPy 資料型別和轉換

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
Jinku Hu avatar Jinku Hu avatar

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