gpt4 book ai didi

python - 如何使用@cython装饰器声明np.ndarray类型

转载 作者:行者123 更新时间:2023-12-01 15:50:22 25 4
gpt4 key购买 nike

我无法在任何地方找到专门解决此问题的任何文档:

以下代码:

cdef int foo( double data ):
# ...
return int( data )

可以写成:

@cython.returns(cython.int)
@cython.locals(data=cython.double)
def foo(data):
return int(data)

但我无法找到等效的声明:

cdef foo(np.ndarray[double] data):

使用@cython.locals 会导致编译错误。

装饰器在 cython 中声明 numpy 数组的正确方法是什么?

最佳答案

这似乎没有在任何地方记录,但 memoryviews 被接受为一个字符串:

@cython.returns(cython.int)
@cython.locals(data="double[:]")
def foo(data):
return int(data[0])

我想这通常可行,但是 numpy 数组的挑战是您必须cimport numpy,我认为这在纯 Python 代码中是不可能的。

关于python - 如何使用@cython装饰器声明np.ndarray类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45183298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com