You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用range或numpy arange生成包含终止值的数值序列?

嘿,咱们一步步来解决你的问题~

首先明确:range()完全没法实现你的需求,因为它只接受整数类型的参数,根本生成不了浮点数序列,直接排除这个选项。

接下来说说arange的问题:你用np.arange(0.0, 0.6, 0.2)得不到0.6,是因为arange的逻辑是「生成从start开始,以step为步长,直到但不包含stop的序列」。而且浮点数的二进制精度问题,有时候还会让结果更出乎意料(正常情况下这个调用应该输出[0. 0.2 0.4],可能你那边有特殊环境影响?)

要实现包含0.6的序列,有两个靠谱的办法:

方法1:微调终止值(快速但依赖精度)

既然arange不包含stop,那我们可以把stop设置成比期望的0.6稍微大一点点的数(比如加个极小的偏移量1e-8),这样就能确保序列包含0.6:

import numpy as np
arr = np.arange(0.0, 0.6 + 1e-8, 0.2)
print(arr)  # 输出: [0.  0.2 0.4 0.6]

不过这个方法有个小隐患:如果你的步长和终止值组合比较复杂,浮点数精度可能还是会搞出问题,所以更推荐下面的方法。

方法2:用linspace(最稳妥,推荐)

numpy的linspace就是专门用来解决这种「需要包含起止点的均匀序列」需求的。你只需要指定起始值、终止值,以及你想要的元素个数就行:

import numpy as np
arr = np.linspace(0.0, 0.6, 4)
print(arr)  # 输出: [0.  0.2 0.4 0.6]

这里第三个参数4表示生成4个均匀分布的点,正好对应你要的四个数值。这个方法完全不会受浮点数步长累积误差的影响,是最可靠的选择。

内容的提问来源于stack exchange,提问作者WPFKK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:23:19