gpt4 book ai didi

python numpy arange 意外结果

转载 作者:IT老高 更新时间:2023-10-28 21:08:21 24 4
gpt4 key购买 nike

我正在使用 arange 函数来定义我的 for 循环迭代并得到意想不到的结果。

i = arange(7.8,8.4,0.05)
print i

产生以下结果:

[ 7.8   7.85  7.9   7.95  8.    8.05  8.1   8.15  8.2   8.25  8.3   8.35 8.4 ]

但使用 8.35 的停止值如下

i = arange(7.8,8.35,0.05)

产生以下结果

[ 7.8   7.85  7.9   7.95  8.    8.05  8.1   8.15  8.2   8.25  8.3 ]

但我希望我的范围以 8.35 结束!我知道我可以使用 > 8.35 和 < 8.4 的停止值来实现我的结果,但为什么它不同并且在我看来不一致?

编辑:我使用的是 2.7 版

最佳答案

我猜您看到了浮点舍入的效果。

numpy.arange 与 python 的 range 做同样的事情:它不包括“端点”。 (例如 range(0, 4, 2) 将产生 [0,2] 而不是 [0,2,4])

但是,对于浮点步骤,舍入误差是累积的,有时最后一个值实际上会包含端点。

arange 的文档中所述:

When using a non-integer step, such as 0.1, the results will often not be consistent. It is better to use linspace for these cases.

numpy.linspace 在起点和终点之间生成指定数量的点。顺便说一句,默认情况下它确实包含端点。

关于python numpy arange 意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10011302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com