import numpy as np
ab=np.arange(1.58,1.61,0.01)
abc=np.arange(1.58,1.65,0.01)
print(ab)
print(abc)
结果:
[1.58 1.59 1.6 1.61]
[1.58 1.59 1.6 1.61 1.62 1.63 1.64]
问题:arange()函数一个包含终值,一个不包含终值,是为啥呢?
import numpy as np
ab=np.arange(1.58,1.61,0.01)
abc=np.arange(1.58,1.65,0.01)
print(ab)
print(abc)
结果:
[1.58 1.59 1.6 1.61]
[1.58 1.59 1.6 1.61 1.62 1.63 1.64]
问题:arange()函数一个包含终值,一个不包含终值,是为啥呢?
这个问题你可以去看看np.arange的官方文档,里面提到说如果step不是整数时,建议使用np.linespace函数,因为此时np.arange函数存在着数值不稳定的问题。实际上np.arange函数采用的step是dtype(start+step)-dtype(start),当dtype参数没有显式给出的时候会根据其他输入参数进行推断,输入的为float类型,计算出的实际step就也为float型,且不稳定一般不等于原始输入step。见下述代码:
float(1.58+0.1)-float(1.58)
Out[20]: 0.10000000000000009
官方文档:
https://numpy.org/doc/stable/reference/generated/numpy.arange.html