数据类型 API #
标准数组可以有 24 种不同的数据类型(并且支持添加您自己的类型)。这些数据类型都有一个枚举类型、一个枚举类型字符和一个相应的数组标量 Python 类型对象(放置在层次结构中)。还有标准的 C typedef,可以更轻松地操作给定数据类型的元素。对于数字类型,还有位宽等效的 C typedef 和命名的 typenumber,可以更轻松地选择所需的精度。
警告
C 代码中类型的名称更严格地遵循 C 命名约定。这些类型的 Python 名称遵循 Python 约定。因此,NPY_FLOAT
在 C 中获取 32 位浮点型,但numpy.float_
在 Python 中对应于 64 位双精度型。为了清楚起见,位宽名称可以在 Python 和 C 中使用。
枚举类型#
-
枚举NPY_TYPES #
定义了一个枚举类型列表,提供了 24 种基本数据类型以及一些有用的通用名称。每当代码需要类型号时,就会请求这些枚举类型之一。这些类型都称为
NPY_{NAME}
:-
枚举器NPY_BOOL #
布尔类型的枚举值,存储为一个字节。它只能设置为值 0 和 1。
-
枚举器NPY_BYTE #
-
枚举器NPY_INT8 #
8 位/1 字节有符号整数的枚举值。
-
枚举器NPY_SHORT #
-
枚举器NPY_INT16 #
16 位/2 字节有符号整数的枚举值。
-
枚举器NPY_INT #
-
枚举器NPY_INT32 #
32 位/4 字节有符号整数的枚举值。
-
枚举器NPY_LONG #
相当于 NPY_INT 或 NPY_LONGLONG,具体取决于平台。
-
枚举器NPY_LONGLONG #
-
枚举器NPY_INT64 #
64 位/8 字节有符号整数的枚举值。
-
枚举器NPY_UBYTE #
-
枚举器NPY_UINT8 #
8 位/1 字节无符号整数的枚举值。
-
枚举器NPY_USHORT #
-
枚举器NPY_UINT16 #
16 位/2 字节无符号整数的枚举值。
-
枚举器NPY_UINT #
-
枚举器NPY_UINT32 #
32 位/4 字节无符号整数的枚举值。
-
枚举器NPY_ULONG #
相当于 NPY_UINT 或 NPY_ULONGLONG,具体取决于平台。
-
枚举器NPY_ULONGLONG #
-
枚举器NPY_UINT64 #
64 位/8 字节无符号整数的枚举值。
-
枚举器NPY_HALF #
-
枚举器NPY_FLOAT16 #
16 位/2 字节 IEEE 754-2008 兼容浮点类型的枚举值。
-
枚举器NPY_FLOAT #
-
枚举器NPY_FLOAT32 #
32 位/4 字节 IEEE 754 兼容浮点类型的枚举值。
-
枚举器NPY_DOUBLE #
-
枚举器NPY_FLOAT64 #
64 位/8 字节 IEEE 754 兼容浮点类型的枚举值。
-
枚举器NPY_LONGDOUBLE #
特定于平台的浮点类型的枚举值至少与 NPY_DOUBLE 一样大,但在许多平台上更大。
-
枚举器NPY_CFLOAT #
-
枚举器NPY_COMPLEX64 #
64 位/8 字节复杂类型的枚举值由两个 NPY_FLOAT 值组成。
-
枚举器NPY_CDOUBLE #
-
枚举器NPY_COMPLEX128 #
128 位/16 字节复杂类型的枚举值由两个 NPY_DOUBLE 值组成。
-
枚举器NPY_CLONGDOUBLE #
特定于平台的复杂浮点类型的枚举值,由两个 NPY_LONGDOUBLE 值组成。
-
枚举器NPY_DATETIME #
数据类型的枚举值,它保存日期或日期时间,其精度基于可选择的日期或时间单位。
-
枚举器NPY_TIMEDELTA #
数据类型的枚举值,它以可选日期或时间单位的整数形式保存时间长度。
-
枚举器NPY_STRING #
可选大小的 ASCII 字符串的枚举值。字符串在给定数组内具有固定的最大大小。
-
枚举器NPY_UNICODE #
可选大小的 UCS4 字符串的枚举值。字符串在给定数组内具有固定的最大大小。
-
枚举器NPY_OBJECT #
对任意 Python 对象的引用的枚举值。
-
枚举器NPY_VOID #
主要用于保存结构数据类型,但可以包含任意二进制数据。
上述类型的一些有用的别名是
-
枚举器NPY_INTP #
有符号整数类型的枚举值,其大小与 (void *) 指针相同。这是所有索引数组使用的类型。
-
枚举器NPY_UINTP #
无符号整数类型的枚举值,其大小与 (void *) 指针相同。
-
枚举器NPY_MASK #
用于掩码的类型的枚举值,例如
NPY_ITER_ARRAYMASK
迭代器标志。这相当于NPY_UINT8
.
-
枚举器NPY_DEFAULT_TYPE #
未显式指定 dtype 时使用的默认类型,例如调用 np.zero(shape) 时。这相当于
NPY_DOUBLE
.
-
枚举器NPY_BOOL #
其他有用的相关常数是
-
NPY_NTYPES #
内置 NumPy 类型的总数。枚举范围为 0 到 NPY_NTYPES-1。
-
NPY_NOTYPE #
保证信号值不是有效的类型枚举数。
-
NPY_USERDEF #
用于自定义数据类型的类型编号的开头。
指示某些类型的各种字符代码也是枚举列表的一部分。对类型字符的引用(如果需要的话)应始终使用这些枚举。它们的形式NPY_{NAME}LTR
可以{NAME}
是
BOOL、BYTE、UBYTE、SHORT、USHORT、INT、 UINT、LONG、ULONG、LONGLONG、ULONGLONG、 HALF、FLOAT、DOUBLE、LONGDOUBLE、CFLOAT、 CDOUBLE、CLONGDOUBLE、DATETIME、TIMEDELTA、 OBJECT、STRING、VOID
国际NTP
GENBOOL、有符号、无符号、浮动、复数
后一组{NAME}s
对应于数组接口类型字符串规范中使用的字母。
定义#
整数的最大值和最小值#
NPY_MAX_INT{bits}
,NPY_MAX_UINT{bits}
,NPY_MIN_INT{bits}
它们是为
{bits}
= 8、16、32、64、128 和 256 定义的,并提供相应(无符号)整数类型的最大(最小值)值。注意:实际的整数类型可能并非在所有平台上都可用(即 128 位和 256 位整数很少见)。NPY_MIN_{type}
这是为
{type}
= BYTE、SHORT、INT、 LONG、LONGLONG、INTP定义的NPY_MAX_{type}
{type}
这是为= BYTE、UBYTE、 SHORT、USHORT、INT、UINT、LONG、ULONG、 LONGLONG、ULONGLONG、INTP、UINTP定义的所有定义的
数据类型的位数#
所有NPY_SIZEOF_{CTYPE}
常量都
NPY_BITSOF_{CTYPE}
定义了相应的常量。这些NPY_BITSOF_{CTYPE}
常量提供数据类型中的位数。具体来说,可用的{CTYPE}s
有
BOOL、CHAR、SHORT、INT、LONG、 LONGLONG、FLOAT、DOUBLE、LONGDOUBLE
对枚举 typenums 的位宽引用#
所有数值数据类型(整数、浮点和复数)都具有定义为特定枚举类型数字的常量。位宽类型到底指的是哪个枚举类型取决于平台。特别是,可用常量
PyArray_{NAME}{BITS}
为INT、UINT、
FLOAT、COMPLEX,可以是 8、16、32、64、80、96、128、160、192、256 和 512。显然,并非所有位宽都可用。在所有平台上适用于所有类型的数字类型。常见为 8、16、32、64 位整数; 32 位、64 位浮点数;并提供 64 位、128 位复杂类型。{NAME}
{BITS}
可以容纳指针的整数#
常量NPY_INTP和NPY_UINTP指的是一个枚举整数类型,该类型足够大以容纳平台上的指针。索引数组应始终转换为NPY_INTP ,因为数组的维度是 npy_intp 类型。
C 类型名称#
每种数值数据类型和布尔数据类型都有标准变量类型。其中一些已经在 C 规范中提供。您可以使用这些类型在扩展代码中创建变量。
布尔值#
(无)有符号整数#
可以通过在整数名称前面添加“u”来定义整数的无符号版本。
-
类型npy_byte #
字符
-
类型npy_ubyte #
无符号字符
-
输入npy_short #
短的
-
输入npy_ushort #
无符号短
-
类型npy_int #
整数
-
类型npy_uint #
无符号整数
-
类型npy_int16 #
16 位整数
-
类型npy_uint16 #
16 位无符号整数
-
类型npy_int32 #
32 位整数
-
类型npy_uint32 #
32 位无符号整数
-
类型npy_int64 #
64 位整数
-
类型npy_uint64 #
64 位无符号整数
-
输入npy_long #
长整型
-
输入npy_ulong #
无符号长整型
-
输入npy_longlong #
长整型
-
输入npy_ulonglong #
无符号长长整型
-
类型npy_intp #
Py_intptr_t(平台上指针大小的整数)。
-
类型npy_uintp #
unsigned Py_intptr_t(平台上指针大小的整数)。
(复数)浮点#
-
输入npy_half #
16位浮点数
-
类型npy_float #
32 位浮点数
-
类型npy_cfloat #
32 位复数浮点数
-
类型npy_double #
64位双
-
类型npy_cdouble #
64 位复数双精度
- 类型npy_longdouble #