系统配置

构建 NumPy 时,会记录有关系统配置的信息,并可使用 NumPy 的 C API 供扩展模块使用。这些主要在numpyconfig.h(包含在 )中定义ndarrayobject.h。公共符号以 为前缀NPY_*。 NumPy 还提供了一些用于查询正在使用的平台信息的函数。

对于私人使用,NumPy 还在config.hNumPy include 目录中构造了一个 NumPy 不导出的目录(即使用 numpy C API 的 python 扩展不会看到这些符号),以避免命名空间污染。

数据类型大小#

定义常量NPY_SIZEOF_{CTYPE}以便预处理器可以使用 sizeof 信息。

NPY_SIZEOF_SHORT #

尺寸(短)

NPY_SIZEOF_INT #

大小(int)

NPY_SIZEOF_LONG #

尺寸(长)

NPY_SIZEOF_LONGLONG #

sizeof(longlong) 其中 longlong 在平台上进行了适当的定义。

NPY_SIZEOF_PY_LONG_LONG #
NPY_SIZEOF_FLOAT #

大小(浮点数)

NPY_SIZEOF_DOUBLE #

大小(双)

NPY_SIZEOF_LONG_DOUBLE #
NPY_SIZEOF_LONGDOUBLE #

大小(长双精度)

NPY_SIZEOF_PY_INTPTR_T #
NPY_SIZEOF_INTP #

该平台上指针的大小 (sizeof(void *))

平台信息#

NPY_CPU_X86 #
NPY_CPU_AMD64 #
NPY_CPU_IA64 #
NPY_CPU_PPC #
NPY_CPU_PPC64 #
NPY_CPU_SPARC #
NPY_CPU_SPARC64 #
NPY_CPU_S390 #
NPY_CPU_PARISC #

1.3.0 版本中的新增功能。

平台的CPU架构;仅定义了上述之一。

定义于numpy/npy_cpu.h

NPY_LITTLE_ENDIAN #
NPY_BIG_ENDIAN #
NPY_BYTE_ORDER #

1.3.0 版本中的新增功能。

endian.hGNU Libc 宏的可移植替代品。如果是大端,则NPY_BYTE_ORDER== NPY_BIG_ENDIAN,对于小端架构也类似。

定义于numpy/npy_endian.h.

int PyArray_GetEndianness ( ) #

1.3.0 版本中的新增功能。

返回当前平台的字节序。NPY_CPU_BIGNPY_CPU_LITTLE、 或之一NPY_CPU_UNKNOWN_ENDIAN

NPY_CPU_BIG #
NPY_CPU_LITTLE #
NPY_CPU_UNKNOWN_ENDIAN #

编译器指令#

NPY_LIKELY #
NPY_UNLIKELY #
NPY_UNUSED #