数据类型 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_NTYPES #

内置 NumPy 类型的总数。枚举范围为 0 到 NPY_NTYPES-1。

NPY_NOTYPE #

保证信号值不是有效的类型枚举数。

NPY_USERDEF #

用于自定义数据类型的类型编号的开头。

指示某些类型的各种字符代码也是枚举列表的一部分。对类型字符的引用(如果需要的话)应始终使用这些枚举。它们的形式NPY_{NAME}LTR可以{NAME}

BOOLBYTEUBYTESHORTUSHORTINTUINTLONGULONGLONGLONGULONGLONGHALFFLOATDOUBLELONGDOUBLECFLOATCDOUBLECLONGDOUBLEDATETIMETIMEDELTAOBJECTSTRINGVOID

国际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}= BYTESHORTINTLONGLONGLONGINTP定义的

NPY_MAX_{type}

{type}这是为= BYTEUBYTESHORTUSHORTINTUINTLONGULONGLONGLONGULONGLONGINTPUINTP定义的所有定义的

数据类型的位数#

所有NPY_SIZEOF_{CTYPE}常量都 NPY_BITSOF_{CTYPE}定义了相应的常量。这些NPY_BITSOF_{CTYPE} 常量提供数据类型中的位数。具体来说,可用的{CTYPE}s

BOOLCHARSHORTINTLONGLONGLONGFLOATDOUBLELONGDOUBLE

对枚举 typenums 的位宽引用#

所有数值数据类型(整数、浮点和复数)都具有定义为特定枚举类型数字的常量。位宽类型到底指的是哪个枚举类型取决于平台。特别是,可用常量 PyArray_{NAME}{BITS}INTUINTFLOATCOMPLEX,可以是 8、16、32、64、80、96、128、160、192、256 和 512。显然,并非所有位宽都可用。在所有平台上适用于所有类型的数字类型。常见为 8、16、32、64 位整数; 32 位、64 位浮点数;并提供 64 位、128 位复杂类型。{NAME}{BITS}

可以容纳指针的整数#

常量NPY_INTPNPY_UINTP指的是一个枚举整数类型,该类型足够大以容纳平台上的指针。索引数组应始终转换为NPY_INTP ,因为数组的维度是 npy_intp 类型。

C 类型名称#

每种数值数据类型和布尔数据类型都有标准变量类型。其中一些已经在 C 规范中提供。您可以使用这些类型在扩展代码中创建变量。

布尔值#

输入npy_bool #

无符号字符;常数NPY_FALSENPY_TRUE也被定义。

(无)有符号整数#

可以通过在整数名称前面添加“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 #