cython何时使用'编译时'类型

时间:2014-10-25 18:33:17

标签: python types cython

编写要从python使用的cython代码时,何时应该使用“编译时”类型(例如np.float64_t)与常规类型(例如np.float64)?

例如,在this Answer中,建议给一个函数编译时间版本,而另一个函数不给出。这是为什么?

This question提出了类似的问题,但标记的解决方案没有提供任何解释。

1 个答案:

答案 0 :(得分:1)

据我所知,在预期编译时间类型的地方,你不能使用常规类型,反之亦然。

所以你可以这样做:cdef np.ndarray[np.float64_t] a = np.zeros(100, dtype=np.float64)。但是你不能交换这两种类型。

你可以这样做:np.ndarray[double] a = np.zero(100, dtype=np.double), 但不是np.ndarray[np.double] a = np.zero(100, dtype=double)