gpt4 book ai didi

python - 如何在 cython 中声明一个全局 numpy.ndarray?

转载 作者:行者123 更新时间:2023-11-28 18:51:37 26 4
gpt4 key购买 nike

我想创建一个信号处理算法,需要在 numpy 数组中保存一些内部状态。

为了提高速度,我用 cython 编写了代码并将状态声明为全局变量,如下所示:

import numpy as np
cimport numpy as np
cdef np.ndarray delay_buffer

然而,我真正想做的是:

import numpy as np
cimport numpy as np
DTYPE = np.float32
ctypedef np.float32_t DTYPE_t
cdef np.ndarray[DTYPE_t] delay_buffer

我可以做任何其他事情,但不能在全局范围内进行。有什么办法可以做到这一点?

最佳答案

Is there any way to accomplish this?

没有。如错误所述,Buffer types only allowed as function local variables

一种替代方法是使用整体式 main 函数。这实际上只需要缩进所有内容,但这意味着您只能分享这么多。

我最喜欢的替代方案是升级到使用内存 View 的现代方法:

cdef DTYPE_t[:] delay_buffer

应该更快、更干净并且功能同样强大。

关于python - 如何在 cython 中声明一个全局 numpy.ndarray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12212068/

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