网易首页 > 网易号 > 正文 申请入驻

NumPy:dtype 数据类型

0
分享至

在 NumPy 中,数组不仅存储数据本身,还必须明确指定每个元素的数据类型。这一类型系统由 dtype(data type)对象统一管理。

与 Python 的动态类型不同,NumPy 数组中的元素通常具有统一的数据类型,并以固定字节数在内存中连续存储。这种设计使 NumPy 能够使用底层 C 语言实现高效的向量化计算,从而显著提高数值计算性能。

dtype 不仅描述元素的数据类型,还包含有关字节大小、字节顺序以及字段结构等信息。

一、dtype 的基本概念

dtype 是 NumPy 中用于描述数组元素类型的对象。

可以通过数组属性查看数据类型:

ndarray.dtype

示例:

print(a.dtype)

输出:

int64

表明该数组的元素类型为 64 位整数。

可在创建数组时指定 dtype:

np.array(data, dtype=...)

示例:

print(a.dtype)

输出:

float64

NumPy 数据类型具有以下特点:

• 数组中的元素通常具有统一类型

• 每个元素占用固定字节数

• 数据在内存中连续存储

• 运算可利用底层 C 语言优化与 SIMD 指令

因此,dtype 会影响数组的计算速度、内存占用以及数值精度。

NumPy dtype 所描述的数组元素数据类型可分为以下几类:

类型类别

示例

布尔

bool_

整数

int8, int16, int32, int64

无符号整数

uint8, uint16, uint32 , uint64

浮点

float16, float32, float64

( 部分平台支持 float128)

复数

complex64, complex128

(部分平台支持 complex256)

字符串

字节字符串 S

Unicode 字符串 U

对象

object_

时间

datetime64, timedelta64

结构化

structured dtype

原始数据

void

二、NumPy 的基本数值类型

NumPy 提供了一套独立于 Python 内置类型的数值类型系统。

1、整数类型(Integer)

整数类型用于表示整型数值。

常见整数类型:

类型

字节

int8

1

8 位整数

int16

2

16 位整数

int32

4

32 位整数

int64

8

64 位整数

uint8

1

无符号 8 位整数

uint16

2

无符号 16 位整数

uint32

4

无符号 32 位整数

uint64

8

无符号 64 位整数

示例:

print(a.dtype)

输出:

int32

2、浮点类型(Floating Point)

浮点类型用于表示带小数的数值。

类型

字节

float16

2

半精度浮点

float32

4

单精度浮点

float64

8

双精度浮点

示例:

print(a.dtype)

输出:

float32

3、复数类型(Complex)

复数类型用于表示复数。

类型

complex64

实部和虚部均为 float32

complex128

实部和虚部均为 float64

示例:

print(a.dtype)

输出:

complex64

4、布尔类型(Boolean)

NumPy 的布尔 dtype 表示为 bool,其对应的 NumPy 标量类型为 np.bool_。

示例:

print(a.dtype)

输出:

bool

np.bool_ 是 NumPy 的布尔标量类型,用于表示单个布尔值。

print(type(b))  #

当 NumPy 数组的 dtype 为 bool 时,其内部每个元素实际上都是 np.bool_ 类型的标量对象。

print(type(a[0]))    #

三、dtype 类型代码

在 NumPy 中,每一种数据类型不仅有名称形式(如 int32、float64),还存在一种更简短的表示方式,称为类型代码(type code)。

类型代码通常由:

类型字母 + 字节数

组成。

常见类型代码:

类型代码

等价类型

i1

int8

8 位整数

i2

int16

16 位整数

i4

int32

32 位整数

i8

int64

64 位整数

u1

uint8

无符号 8 位整数

u2

uint16

无符号 16 位整数

u4

uint32

无符号 32 位整数

u8

uint64

无符号 64 位整数

f4

float32

单精度浮点

f8

float64

双精度浮点

c8

complex64

复数(两个 float32)

c16

complex128

复数(两个 float64)

示例:

print(a.dtype)  # int32

dtype 类型代码常见的类型字母:

字母

含义

b

布尔

i

有符号整数

u

无符号整数

f

浮点数

c

复数

S

字节字符串

U

Unicode 字符串

O

Python 对象

M

datetime64

m

timedelta64

V

void(原始数据)

类型代码通常用于以下场景。

(1)快速指定 dtype

dtype="f8"

(2)结构化数组

dtype=[("age","i4"),("score","f4")]

(3)二进制数据解析

np.fromfile("data.bin", dtype="i2")

(4)dtype 字符串表示

例如:

dtype(' )

< 表示 little-endian 的 float64,f8 表示 8 字节浮点数。

四、字节序

NumPy dtype 还可以描述数据的字节顺序(byte order)。

符号

含义

little-endian

big-endian

本机字节序

示例:

print(dt)

NumPy dtype 字符串格式是:

byteorder + type + size

例如:

float64

在计算机体系结构与数据表示中:

英文

中文翻译

含义

little-endian

小端序 / 小端字节序

低位字节存放在低地址

big-endian

大端序 / 大端字节序

高位字节存放在低地址

字节序在二进制文件读写和跨平台数据交换中尤为重要。

五、其它数据类型

1、字符串类型

NumPy 支持固定长度字符串。

类型

S

字节字符串

U

Unicode 字符串

示例:

print(a.dtype)

输出:

U10 表示最多长度为 10 的 Unicode 字符,< 是 dtype 表示格式中的字节序标记。

2、时间类型

NumPy 还提供专门的时间数据类型。

datetime64

用于表示日期和时间。

示例:

print(a)

输出:

['2026-01-01' '2026-01-02']

解释单位:

单位

含义

Y

M

D

h

小时

m

分钟

s

ms

毫秒

timedelta64

用于表示时间间隔。

示例:

print(a)

输出:

[1 2 3]

说明:这些数值表示时间间隔的数量,单位由 dtype 指定。例如 D 表示为天(day)为单位。

3、Python 对象类型

NumPy 也可以存储 Python 对象,dtype 类型为 object。

示例:

print(type(a[1]))

输出示例:

numpy.object_ 是 NumPy 的对象标量类型。当数组的 dtype 为 object 时,每个元素实际上都是 numpy.object_ 类型的标量,用于封装任意 Python 对象。

也可以直接创建 numpy.object_ 标量:

print(type(x))  #

dtype 为 object 的数组不再是纯数值数组,每个元素存储的是 Python 对象引用。

与普通 NumPy 数组相比:

• 计算速度较慢

• 不适合数值计算

• 通常只用于特殊数据结构

4、结构化数据类型

NumPy 允许数组元素包含多个字段,类似 C 语言中的结构体。

示例:

print(data)

输出:

[('艾婉婷', 18, 88.5) ('岳露珊', 19, 92. )]

访问字段:

print(data["age"])

输出:

[18 19]

说明:结构化数组适用于表格型记录数据。

六、类型转换

NumPy 可以使用 astype() 进行数据类型转换。

ndarray.astype(dtype)

示例:

print(b.dtype)

输出:

float64

astype() 会创建新的数组。

小结

dtype 是 NumPy 数组的重要组成部分,用于描述数组元素的数据类型、字节大小以及存储结构。NumPy 提供整数、浮点数、复数、布尔、字符串和时间等多种数据类型,并支持结构化 dtype 用于记录型数据。创建数组时可以通过 dtype 指定元素类型,也可以使用 astype() 进行类型转换。理解 dtype 的机制,有助于更好地控制数组的内存结构、计算精度与计算性能。

点赞有美意,赞赏是鼓励

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
随着高芙1-2遭逆转,美网女单决赛2席全部诞生:世界前二霸榜

随着高芙1-2遭逆转,美网女单决赛2席全部诞生:世界前二霸榜

侧身凌空斩
2026-09-11 11:08:57
中国千亿芯片订单撤销,欧美光刻机生产线接连停工。

中国千亿芯片订单撤销,欧美光刻机生产线接连停工。

荆楚寰宇文枢
2026-09-10 21:31:24
WTT澳门冠军赛:周启豪浪费好局!7-3被逆转,美国1哥追到1-1!

WTT澳门冠军赛:周启豪浪费好局!7-3被逆转,美国1哥追到1-1!

刘姚尧的文字城堡
2026-09-11 14:05:59
15-5!中国足球小将狂胜意甲劲旅 董路:有所保留还是赢了10球

15-5!中国足球小将狂胜意甲劲旅 董路:有所保留还是赢了10球

念洲
2026-09-11 12:39:44
宝格丽越南公关回应刘亦菲裁照:没获对方许可,裁掉胡玉荷是规矩

宝格丽越南公关回应刘亦菲裁照:没获对方许可,裁掉胡玉荷是规矩

新金牌娱乐观察家
2026-09-10 11:16:36
一旦出现“红皇后效应”,说明公司就要凉了

一旦出现“红皇后效应”,说明公司就要凉了

互联网早读课
2026-08-28 08:11:31
江苏省人民政府通告!

江苏省人民政府通告!

江南晚报
2026-09-11 10:08:34
个人存款达到这个数,你已经是富裕家庭,超过了全国90%的家庭

个人存款达到这个数,你已经是富裕家庭,超过了全国90%的家庭

史之铭
2026-07-19 02:28:55
回溯刘嘉玲 90 年被绑旧闻,不雅照轰动全港,当晚究竟经历了什么

回溯刘嘉玲 90 年被绑旧闻,不雅照轰动全港,当晚究竟经历了什么

搞笑娱乐笑话
2026-09-08 13:54:55
厂二代的评论区已经压不住了

厂二代的评论区已经压不住了

大厂观察
2026-09-11 11:59:33
被指摸臀4岁男孩父母最新发声:孩子状况还好,已正常返校上学

被指摸臀4岁男孩父母最新发声:孩子状况还好,已正常返校上学

极目新闻
2026-09-09 21:41:30
“忍耐并非没有限度” ,俄方警告:俄罗斯有权使用核武器,支持乌克兰的西方国家正在将世界推向核灾难边缘

“忍耐并非没有限度” ,俄方警告:俄罗斯有权使用核武器,支持乌克兰的西方国家正在将世界推向核灾难边缘

每日经济新闻
2026-09-10 17:09:41
伊朗终于想起来,中国手里的4千亿美元,成了他们翻身破局关键?

伊朗终于想起来,中国手里的4千亿美元,成了他们翻身破局关键?

浯江孤舟
2026-08-28 09:31:09
案件回顾:风流局长落马后的忏悔录

案件回顾:风流局长落马后的忏悔录

农村情感故事
2025-11-20 07:14:23
张柏芝带着小儿子现身机场,她的一身打扮太亮眼,太贵气了!

张柏芝带着小儿子现身机场,她的一身打扮太亮眼,太贵气了!

大眼妹妹
2026-09-09 12:28:41
坐3.6亿飞机,戴1000万名表,拿5000万炒股的秦奋究竟什么背景

坐3.6亿飞机,戴1000万名表,拿5000万炒股的秦奋究竟什么背景

知法而形
2026-09-10 07:08:19
台湾退役中将帅化民表示,张学良被关一生不能算冤,因为西安事变那一夜,他差点让蒋介石从奉化带来的嫡系护卫全军覆没

台湾退役中将帅化民表示,张学良被关一生不能算冤,因为西安事变那一夜,他差点让蒋介石从奉化带来的嫡系护卫全军覆没

谈史论今1
2026-09-06 20:22:18
体制内的人出现了转向

体制内的人出现了转向

职场资深秘书
2026-09-11 14:19:47
已破案!员工裸奔涉事上市公司出来认领了

已破案!员工裸奔涉事上市公司出来认领了

财通社
2026-09-10 20:51:58
养老金上调一旦暂停,退休群体不是首要对象,而是两亿就业群体

养老金上调一旦暂停,退休群体不是首要对象,而是两亿就业群体

刘森森
2026-09-06 14:42:07
2026-09-11 17:24:49
MediaTea
MediaTea
专业的数字媒体、新媒体技术
2158文章数 86关注度
往期回顾 全部

科技要闻

罗永浩连用7个“抄的”吐槽苹果折叠屏

头条要闻

"男子称停资助遭受助学生质问"疑反转 民政局查无此人

头条要闻

"男子称停资助遭受助学生质问"疑反转 民政局查无此人

体育要闻

37岁还能场场进球,还能翻跟头!

娱乐要闻

黄晓明直言帮太多白眼狼,杨颖遭殃

财经要闻

千叶珠宝创始人夫妇失联 股价应声"腰斩"

汽车要闻

买菜车也有小乐趣 风云T7不止是台合格家用SUV

态度原创

家居
教育
艺术
亲子
时尚

家居要闻

2026建博会(广州) 公装联探展交流活动

教育要闻

为什么越在意孩子感受,孩子越脆弱

艺术要闻

梅尔尼科夫:全山石、苏高礼、林岗等的老师

亲子要闻

潮州新时代月子中心婴儿护理口碑怎么样?

女人不管三十还是四十,衣服都可以多穿白色,清爽百搭又减龄

无障碍浏览 进入关怀版