如何在.pxd和.pyx文件中使用cython中的高效索引(numpy)

时间:2017-09-17 10:12:55

标签: python numpy cython

假设我有.pxd.pyx文件,它们都使用这样的函数参数:np.ndarray[DTYPE_double_t, ndim=1] weight,但是文件(pyx和pxd)中的ctypedef将会出现:' DTYPE_int_t'重新声明

我的代码在文件开始部分中跟随:

import numpy as np
cimport numpy as np
cimport cython
DTYPE_double = np.float64
DTYPE_int = np.int32
ctypedef np.float64_t DTYPE_double_t
ctypedef np.int32_t DTYPE_int_t

1 个答案:

答案 0 :(得分:1)

来自pxd files

上的Cython文档
  

当附带一个同名的pyx文件时,它们提供了一个Cython   接口到Cython模块,以便其他Cython模块可以   使用比Python更有效的协议与它通信   之一。

这意味着将.pxd文件中的声明复制到.pyx文件是一个错误,因为它会自动包含在内。要编译代码,必须删除重复。

您尚未说明为什么要复制代码,因此如果某些目的很重要,请解释为什么我或其他人可以帮助您解决问题。