问题描述
我正在用 Python 开发实时数据处理程序,而在数据处理部分我使用的是 cython。
不幸的是,使用 np.zeros 初始化一个 numpy 数组相当慢。我发现在启动时创建一次数组,然后循环遍历这些值并将它们设置为零比创建一个新数组要快。
@cython.wraparound(False)
@cython.boundscheck(False)
cpdef zeros_int32(unsigned long long[::1] arr):
cdef unsigned int x
with nogil:
for x in range(arr.shape[0]):
arr[x] = 0
但是我觉得这很hacky。有没有更好的方法来初始化所有值都设置为 0 的数组?也许使用 malloc 和 free?我知道在 C++ 中,您可以执行以下操作:
uint_32t emptyArray[number_of_elements];
它创建了所有值都设置为 0 的数组,但我似乎无法让它在 cython 中工作。再一次,我只关心代码的速度,所以它是否看起来很乱并不重要只要尽可能快地执行,就非常具有可读性。
任何帮助将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)