【问题标题】:Python:Scipy cimport with CythonPython:Scipy cimport 与 Cython
【发布时间】:2020-11-09 17:35:35
【问题描述】:

我看了很久,最后决定把这个问题放在这里,因为它似乎缺乏关于那个特定案例的信息。 这是我的问题: 我的代码有点慢,所以我求助于 Cython 来加快速度。它使用 scipy.special jv 功能,我发现有与 Cython 兼容的版本。 参考:https://docs.scipy.org/doc/scipy/reference/special.cython_special.html

但我在尝试使用该功能时无法使其工作。这是一个最小的代码。

from scipy.special.cython_special cimport jv as jvCython

cdef complex128_t[:] A = jvCython(1,2)

我收到错误:融合类型的使用无效,类型不能特化

看起来 ctype 定义在某些时候存在问题,但即使我使用链接中显示的签名,我也会遇到相同的错误。

谁能解释一下什么是融合类型以及为什么它不起作用?

非常感谢

【问题讨论】:

    标签: python scipy cython


    【解决方案1】:

    当你传递两个int 时,我认为你想要double 版本还是double complex 版本很难猜测。如果你这样做,它可能会起作用

    a = jv(1., 2.)
    

    (即添加小数点,以便识别输入为double)。如果您想要复杂的版本,请输入第二个数字2. + 0.j。

    输出是一个标量,而不是内存视图,所以我不知道你为什么要这样输入A,但这是一个单独的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-05
      • 2017-11-24
      • 2014-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-09
      相关资源
      最近更新 更多