NumPy数据类型全称与缩写对比总结

NumPy中常常需要确定元素的数据类型,而在使用过程中能够发现全称和缩写都能满足要求,但是对于数据类型全称和缩写及其对应的数据类型和存储空间的描述在各种笔记中还是不够全面,因此本文对NumPy数据类型进行了较为系统总结,望批评指正一同进步!

01 全称里的“_

在使用时发现有些全称后面有“_”有些就没有,以np.unicode_为例:

np.unicodenp.unicode_实际上是相同的数据类型,都表示Unicode字符串。但是在NumPy中,数据类型名称后面的下划线是为了避免与Python内置类型的名称冲突。

通常在以字母结尾的数据类型全称之后需要加上下划线与内置类型相区分

02 全称缩写对照表

全称

缩写

注释

np.bool_

‘?’, ‘b1’

布尔类型

np.int8

‘b’, ‘i1’

8位有符号整数,取值范围为-128~127

np.uint8

‘B’, ‘u1’

8位无符号整数类型,取值范围在0~255

np.int16

‘h’, ‘i2'

np.uint16

‘H’, ‘u2’

np.int32

‘i’, ‘i4'

np.uint32

‘I’, ‘u4’

np.int64

‘q’, ‘i8

np.uint64

‘Q’, ‘u8’

np.float16

‘f2’, ‘e’

np.float32

‘f4’, ‘f’

np.float64

‘f8’, ‘d’

np.complex64

np.c64

64位复数,由两个32位浮点数(实数和虚数组件)表示

np.complex128

np.c128

128位复数,由两个64位浮点数(实数和虚数组件)表示

np.str_

‘U’

Unicode字符串,能表示所有的字符串,存储空间由字符串长度决定

np.unicode_

np.string_

‘S’

字节类型,以空字符结尾的字节串(NTBS),只能是ASCII码表中有的字符

np.bytes_ 

可以在缩写后添加数字限定长度,如‘U3’表示长度为三的字符串;不写或者采用全称进行表示则是最大长度。

03 程序实例

程序:

import numpy as np

a = np.array([1,0,1], dtype=np.bool_)

b = np.array([1,2,3,4,5], dtype = np.int8)

# b = np.array([1,2,3,4,5], dtype = 'i1')

c = np.array([1,2,3,4,5], dtype = np.complex64)

# c = np.array([1,2,3,4,5], dtype = np.c64)

d = np.array(['4','as','👉', 4], dtype = np.str_)

# d = np.array(['4','as','👉', 4], dtype = np.unicode_)

# d = np.array(['4','as','👉', 4], dtype = 'U')

e = np.array(['4','a', 4], dtype = np.string_)

# e = np.array(['4','a', 4], dtype = np.bytes_)

# e = np.array(['4','a', 4], dtype = 'S')

print(a, ';每个元素的字节长度:', a.itemsize, '字节;数据类型:', type(a[0]))

print(b, ';每个元素的字节长度:', b.itemsize, '字节;数据类型:', type(b[0]))

print(c, ';每个元素的字节长度:', c.itemsize, '字节;数据类型:', type(c[0]))

print(d, ';每个元素的字节长度:', d.itemsize, '字节;数据类型:', type(d[0]))

print(e, ';每个元素的字节长度:', e.itemsize, '字节;数据类型:', type(e[0]))

输出:

补充:

对于字节类型的字符(np.bytes_),Python在输出时常常带有前缀b ' ****',但是这也与安装的Python版本有关,以上是Python3.9

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值