我正在尝试加快代码的速度,现在我有一个"for"循环来对数组中的数字求和。它的设置如下:
a1=np.zeros(5)
a2=[1,2,3,4,5,6,7,8,9,10]
我想做的是将a2[:5]
+ a2[5:]
的值相加,得到
a1=[7,9,11,13,15]
我做了一个循环
for ii in range(2):
a1+=a2[5*ii:5*(ii+1)]
然而,这需要很长的时间。有人知道如何解决这个问题或如何重组我的代码吗?
我想做的是:
i=np.range(2)
a1+=a2[5*i:5*(i+1)]
但是不能,因为你不能在Python中使用数组作为索引,这是除了循环之外我唯一的想法。
编辑:这里的2只是一个例子,在我的代码中,我计划让它这样做50 - 100次。
2条答案
按热度按时间pzfprimi1#
看起来您想将列表的前半部分添加到后半部分。这可以通过将一维列表重新调整为二维数组(2x5)并沿着水平轴求和来完成。
rhfm7lfc2#
这取决于您真正想要实现的目标。但np.roll函数可能会获得您所期望的速度: