【发布时间】:2014-02-06 22:57:13
【问题描述】:
令 L 是一个列表 L = [A_1, A_2, ..., A_n],每个 A_i 都是长度为 1024 的 numpy.int32 数组。
(大多数时候 1000
经过一些分析,我发现最耗时的操作是求和:
def summation():
# L is a global variable, modified outside of this function
b = numpy.zeros(1024, numpy.int32)
for a in L:
b += a
return b
PS:我不认为我可以定义大小为 1024 x n 的二维数组,因为 n 不固定:一些元素被动态删除/添加到 L,所以 len(L) = n 在期间可以在 1000 和 4000 之间变化运行时间。
我可以通过使用 Cython 获得显着的改进吗?
如果是这样,我应该如何对这个小功能进行cython-recode(我不应该添加一些cdef打字吗?)
或者你能看到一些其他可能的改进吗?
【问题讨论】:
标签: python arrays numpy profiling cython