常见数据类型:数据类型的下划线是为了区分,原本python中不加以区分的数据类型。
dtype:描述数据类型各种信息的
python中的int是灵活变动的,numpy中int对应不同的数值范围。
常量 numpy.nan表示空值,但注意两个numpy.nan是不相等的。
import numpy as np print(np.nan == np.nan) # False print(np.nan != np.nan) # Truenumpy.inf
表示无限大
numpy.pi表示圆周率
pi=3.1415926...
numpy.e表示自然常数
e=2.71828182...
常见数据类型Numpy实践 - AI学习 - 阿里云天池 (aliyun.com)
python原生的数据类型较少,这在通常情况下是非常方便的,不需要像C/C++一样每种变量都要定义数据类型。
但是在科学计算领域,通常需要对数据进行更多的控制,为了区分这些数据,numpy在这一类数据类型名字末尾添加了“_”
| 类型 | 备注 | 说明 |
|---|---|---|
| bool_=bool8 | 8位 | 布尔类型 |
| int8=byte | 8位 | 整形 |
| int_=int64=long=int0=intp | 64位 | 整形 |
| float_=float64=double | 64位 | 浮点型 |
数据类型对象(numpy.dtype 类的实例)用来描述与数组对应的内存区域是如何使用,它描述了数据的以下几个方面::
- 数据的类型(整数,浮点数或者 Python 对象)
- 数据的大小(例如, 整数使用多少个字节存储)
- 数据的字节顺序(小端法或大端法)
- 在结构化类型的情况下,字段的名称、每个字段的数据类型和每个字段所取的内存块的部分
- 如果数据类型是子数组,那么它的形状和数据类型是什么。
numpy的数值类型是dtype对象的实例,每个内建类型都有一个唯一定义它的字符代码:
| 字符 | 对应类型 | 备注 |
|---|---|---|
| b | boolean | 'b1' |
| i | signed integer | 'i1', 'i2', 'i4', 'i8' |
| u | unsigned integer | 'u1', 'u2' ,'u4' ,'u8' |
| f | floating-point | 'f2', 'f4', 'f8' |
| c | complex floating-point | |
| m | timedelta64 | 表示两个时间之间的间隔 |
| M | datetime64 | 日期时间类型 |
| O | object | |
| S | (byte-)string | S3表示长度为3的字符串 |
| U | Unicode | Unicode 字符串 |
| V | void |
【例】
import numpy as np
a = np.dtype('b1')
print(a.type) #
print(a.itemsize) # 1
a = np.dtype('i1')
print(a.type) #
print(a.itemsize) # 1
a = np.dtype('i2')
print(a.type) #
print(a.itemsize) # 2
a = np.dtype('i4')
print(a.type) #
print(a.itemsize) # 4
a = np.dtype('i8')
print(a.type) #
print(a.itemsize) # 8
a = np.dtype('u1')
print(a.type) #
print(a.itemsize) # 1
a = np.dtype('u2')
print(a.type) #
print(a.itemsize) # 2
a = np.dtype('u4')
print(a.type) #
print(a.itemsize) # 4
a = np.dtype('u8')
print(a.type) #
print(a.itemsize) # 8
a = np.dtype('f2')
print(a.type) #
print(a.itemsize) # 2
a = np.dtype('f4')
print(a.type) #
print(a.itemsize) # 4
a = np.dtype('f8')
print(a.type) #
print(a.itemsize) # 8
a = np.dtype('S')
print(a.type) #
print(a.itemsize) # 0
a = np.dtype('S3')
print(a.type) #
print(a.itemsize) # 3
a = np.dtype('U3')
print(a.type) #
print(a.itemsize) # 12
数据类型信息
Python的浮点数通常是64位浮点数,几乎等同于np.float64。
NumPy和Python整数类型的行为在整数溢出方面存在显着差异,与 NumPy 不同,Python 的int 是灵活的。这意味着Python整数可以扩展以容纳任何整数并且不会溢出。
【例】
import numpy as np ii16 = np.iinfo(np.int16) print(ii16.min) # -32768 print(ii16.max) # 32767 ii32 = np.iinfo(np.int32) print(ii32.min) # -2147483648 print(ii32.max) # 2147483647 ff16 = np.finfo(np.float16) print(ff16.bits) # 16 print(ff16.min) # -65500.0 print(ff16.max) # 65500.0 print(ff16.eps) # 0.000977 ff32 = np.finfo(np.float32) print(ff32.bits) # 32 print(ff32.min) # -3.4028235e+38 print(ff32.max) # 3.4028235e+38 print(ff32.eps) # 1.1920929e-07



