标准数组可以有24种不同的数据类型(并支持添加您自己的类型)。这些数据类型都具有枚举类型、枚举类型字符和相应的数组标量python类型对象(放置在层次结构中)。还有标准的C typedef,以便更容易地操作给定数据类型的元素。对于数字类型,还有位宽度等效的C typedef和命名的typenumber,使选择所需的精度更加容易。
警告
C代码中类型的名称更接近于C命名约定。这些类型的python名称遵循python约定。因此, NPY_FLOAT 在C中获取32位浮点,但是 numpy.float_ 在python中对应于64位的double。为了清晰起见,可以在python和c中使用位宽度名称。
NPY_FLOAT
numpy.float_
NPY_TYPES
这里有一个枚举类型列表,提供了基本的24个数据类型和一些有用的通用名称。每当代码需要类型号时,都会请求这些枚举类型之一。所有类型都被调用 NPY_{{NAME}} :
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-oulonglong,取决于平台。
NPY_ULONGLONG
NPY_UINT64
64位/8字节无符号整数的枚举值。
NPY_HALF
NPY_FLOAT16
16位/2字节IEEE 754-2008兼容浮点类型的枚举值。
NPY_FLOAT32
32位/4字节IEEE 754兼容浮点类型的枚举值。
NPY_DOUBLE
NPY_FLOAT64
64位/8字节IEEE 754兼容浮点类型的枚举值。
NPY_LONGDOUBLE
特定于平台的浮点类型的枚举值,该值至少与npy_double一样大,但在许多平台上更大。
NPY_CFLOAT
NPY_COMPLEX64
由两个npy_浮点值组成的64位/8字节复杂类型的枚举值。
NPY_CDOUBLE
NPY_COMPLEX128
由两个npy_双精度值组成的128位/16字节复杂类型的枚举值。
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_ITER_ARRAYMASK
NPY_DEFAULT_TYPE
当没有显式指定数据类型时使用的默认类型,例如在调用np.zero(shape)时。这相当于 NPY_DOUBLE .
其他有用的相关常量包括
NPY_NTYPES
内置numpy类型的总数。枚举范围从0到npy类型s-1。
NPY_NOTYPE
保证信号值不是有效的类型枚举数。
NPY_USERDEF
用于自定义数据类型的类型编号的开头。
指示某些类型的各种字符代码也是枚举列表的一部分。对类型字符的引用(如果需要的话)应该始终使用这些枚举。它们的形式是 NPY_{{NAME}}LTR 在哪里? {{NAME}} 可以是
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 INTP , UINTP GENBOOL , SIGNED , UNSIGNED , FLOATING , COMPLEX
BOOL , BYTE , UBYTE , SHORT , USHORT , INT , UINT , LONG , ULONG , LONGLONG , ULONGLONG , HALF , FLOAT , DOUBLE , LONGDOUBLE , CFLOAT , CDOUBLE , CLONGDOUBLE , DATETIME , TIMEDELTA , OBJECT , STRING , VOID
INTP , UINTP
GENBOOL , SIGNED , UNSIGNED , FLOATING , COMPLEX
后一组 {{NAME}}s 对应于数组接口类型字符串规范中使用的字母。
{{NAME}}s
NPY_MAX_INT{bits}
NPY_MAX_UINT{bits}
NPY_MIN_INT{bits}
这些是为 {{bits}} =8、16、32、64、128和256,并提供相应(无符号)整数类型的最大(最小)值。注:实际整数类型可能不适用于所有平台(即128位和256位整数很少)。
{{bits}}
NPY_MIN_{type}
这是为 {{type}} = BYTE , SHORT , INT , LONG , LONGLONG , INTP
{{type}}
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 是
NPY_SIZEOF_{{CTYPE}}
NPY_BITSOF_{{CTYPE}}
{{CTYPE}}s
BOOL , CHAR , SHORT , INT , LONG , LONGLONG , FLOAT , DOUBLE , LONGDOUBLE
所有数值数据类型(整数、浮点和复数)都具有定义为特定枚举类型号的常量。位宽度类型引用的具体枚举类型取决于平台。特别是,可用的常量是 PyArray_{{NAME}}{{BITS}} 在哪里? {{NAME}} 是 INT , UINT , FLOAT , COMPLEX 和 {{BITS}} 可以是8、16、32、64、80、96、128、160、192、256和512。显然,并非所有的位宽度在所有平台上都适用于所有类型的数字类型。通常8位、16位、32位、64位整数;32位、64位浮点数;以及64位、128位复杂类型可用。
PyArray_{{NAME}}{{BITS}}
{{BITS}}
常量 NPY_INTP 和 NPY_UINTP 引用一个枚举整数类型,该类型的大小足以在平台上容纳指针。索引数组应始终转换为 NPY_INTP ,因为数组的维数是npyu intp类型。
每个数值数据类型和bool数据类型都有标准变量类型。其中一些已经在C规范中提供。您可以使用这些类型在扩展代码中创建变量。
npy_bool
无符号字符;常量 NPY_FALSE 和 NPY_TRUE 也被定义。
NPY_FALSE
NPY_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
无符号py-intptr-t(平台上指针大小的整数)。
npy_half
16位浮标
npy_float
32位浮标
npy_cfloat
32位复数浮点
npy_double
64位双
npy_cdouble
64位复数双精度
npy_longdouble
长双倍
npy_clongdouble
长复式
复杂类型是指 真实的 和 IMAG 成员(按顺序)。
也有针对特定位宽度的有符号整数、无符号整数、浮点和复杂浮点类型的typedef。可用的类型名是
npy_int{bits}, npy_uint{bits}, npy_float{bits}, and npy_complex{bits}
npy_int{bits}
npy_uint{bits}
npy_float{bits}
npy_complex{bits}
在哪里? {{bits}} 是类型中的位数,可以是 8 , 16 , 32 , 64 ,128和256表示整数类型;16, 32 , 64 对于浮点类型,为80、96、128和256;以及32, 64 , 128 ,160、192和512用于复杂值类型。哪些位宽度可用取决于平台。加粗的位宽度通常在所有平台上都可用。
为了帮助打印,以下字符串在printf和相关命令中定义为正确的格式说明符。
NPY_LONGLONG_FMT
NPY_ULONGLONG_FMT
NPY_INTP_FMT
NPY_UINTP_FMT
NPY_LONGDOUBLE_FMT