函数上嵌套for循环的备选方案

2024-10-01 04:53:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找到一种编写以下代码的替代方法,因为当前函数需要很长时间。在我的示例中,numpy数组eventmatrix的形状是(384,592),其中行是时间步长,列是位置。我正试图优化代码,使其运行得更快;我使用列表理解和map()查找了多个示例,但不能真正适合我的问题。我列出了至少删除一个for循环的方法,但它并没有真正的帮助

您能建议如何使用map()或任何其他方法重写代码以使其更快吗

eSize = eventmatrix.shape[1]   
for i in range(0, eSize):
    for j in range(i+1, eSize):
        res[i, j], res[j, i] = eventSync(eventmatrix[:, i], eventmatrix[:, j])
return res

函数eventSync一次接受两个位置,它们是布尔数组,其中事件由1表示,并返回每对位置的“同步事件”数,即在可变时间窗口内发生的事件数

代码来自于^{}库中名为EventSynchronization的函数,但这与这个问题的相关性不高


Tags: 方法函数代码in示例mapfor时间