首页 > 解决方案 > 使用 numpy 对特定范围内的数组值求和

问题描述

因此,我尝试使用以下方法获取文本文件中特定范围值的总和:

np.sum(d[a:b])

我正在使用一个包含 10000 个条目的文本文件。我知道我们总是从零开始。所以我的范围很大,即;索引 200-555(包括 200 和 555)。我只是为了在小范围内测试求和:

In [17]: np.sum(d[1:4])
Out[17]: 50.164228

但是上面的代码从第二个块(python 标记为数字 1)到第三个块求和。数字是;(0-> 13.024), 1-> 17.4529, 2-> 16.9382, 3-> 15.7731,(4-> 11.7589), 5-> 14.5178。

零仅供参考,它忽略了 4-> 11.7589。为什么?

标签: pythonpython-3.xnumpyscientific-computing

解决方案


在 Python 中使用范围索引时,第二个索引(在您的情况下为 4)不是包含索引。通过指定[1:4],您将从索引 1 到但不包括索引 4 的元素相加。如果要在索引 4 处包含元素,请指定 5 作为第二个索引。


推荐阅读