如何在Python中创建包含0到1(步长0.1)的NumPy数组?
解决NumPy数组包含终止值1的问题
问题原因
np.arange() 采用左闭右开的区间逻辑,只会包含起始值,不会包含终止值。再加上浮点数的精度特性,直接用 np.arange(0, 1, 0.1) 自然不会输出1。
推荐解决方案
1. 使用 np.linspace()(最稳妥)
这个函数专门用于生成指定区间内的等间隔数值,默认包含起始和终止值。你只需指定起始点、终止点,以及元素总数:
import numpy as np t = np.linspace(0, 1, 11) # 0到1共11个元素,步长正好是0.1 print(t)
输出:
[0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. ]
2. 调整 np.arange() 的终止值
如果坚持用 arange,可以把终止值设为比1稍大的数(比如1.0001),利用浮点数的精度特性让1被包含进来:
import numpy as np t = np.arange(0, 1.0001, 0.1) print(t)
输出同样会包含1,但这种方法依赖浮点数精度,不如 linspace 可靠,步长更小时偶尔可能出现意外。
3. 手动添加终止值(备选)
如果只是临时需求,也可以用 np.append() 手动把1加进去:
import numpy as np t = np.arange(0, 1, 0.1) t = np.append(t, 1) print(t)
内容的提问来源于stack exchange,提问作者Ongky Denny Wijaya
相关产品推荐
相关产品推荐

