编写要从python使用的cython代码时,何时应该使用“编译时”类型(例如np.float64_t
)与常规类型(例如np.float64
)?
例如,在this Answer中,建议给一个函数编译时间版本,而另一个函数不给出。这是为什么?
This question提出了类似的问题,但标记的解决方案没有提供任何解释。
答案 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)
。