加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 对数组中所有元素的范围内的求和元素

发布时间:2020-12-20 11:08:42 所属栏目:Python 来源:网络整理
导读:我必须得到一个数组范围的总和.但是,数组范围需要从一个元素移动到另一个元素.例如,如果数组是1,2,3,4,5,6并且如果每两个元素需要添加,那么它应该添加1 2而不是2 3而不是3 4,依此类推. 我试过但没有得到正确的方法.我确信有一种pythonic方式可以做到这一点.
我必须得到一个数组范围的总和.但是,数组范围需要从一个元素移动到另一个元素.例如,如果数组是1,2,3,4,5,6并且如果每两个元素需要添加,那么它应该添加1 2而不是2 3而不是3 4,依此类推.

我试过但没有得到正确的方法.我确信有一种pythonic方式可以做到这一点.

这是我尝试过的

data = np.arange(0,20,.3)
for i in range (0,len(data)):
    for j in range(i,len(data)):
        get_range = data[j:5]
        get_add = get_range.sum()
        print("sum:",get_add)

我试图在这里添加每5个元素.

解决方法

有一种numpyic方式来做到这一点.如果输入数据很大,那么它的内存和CPU效率会更高.

import numpy as np

# input array: [1,6]
data = np.arange(1,7)

# cumulative sum: [1,6,10,15,21]
data_cumsum = np.cumsum(data)

# append zero to start: [0,1,21]
data_cumsum = np.hstack([0,data_cumsum])

# calculate moving sum
window = 2
moving_sum = data_cumsum[window:] - data_cumsum[:-window]

print(moving_sum)

输出:

[ 3  5  7  9 11]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读