python 产生小数等步长数据
需求产生0-1并且step是0.1的数据。寻找range,python自带的,但是range(start,stop,step)中的step只能是int,遂罢。numpy.linspace,参数(start, stop, number),意思是产生从start到stop的10个均匀线性的数。我使用了linspace(0,1,10)结果给我返回这个数组:[0,0.111111111,0.2222222
·
需求
产生0-1并且step是0.1的数据。
评论区方法
np.linspace(0,1,11)
np.arange(0,1,0.1).round(0)
都行。
寻找
- range,python自带的,但是range(start,stop,step)中的step只能是int,遂罢。
- numpy.linspace,参数(start, stop, number),意思是产生从start到stop的10个均匀线性的数。我使用了
linspace(0,1,10)
结果给我返回这个数组:[0,0.111111111,0.2222222,0.333333,...,1]
。
wtf? - numpy.arange(start, stop, step),用法同Python自带的range,只不过他的step可以小数了。我使用了
arange(0,1,0.1)
,结果出现:
[0,0.100000001,0.2000000001,0.3,0.3000001,...,1]
。emmm……这应该是numpy过于追求精确的连带的print问题吧,小数本身就表示有区别。可是我放不下心啊,我需要他精确。手动精确到小数点后一位吧.
使用round函数,4舍6入5留双。
[round(num,1) for num in np.arange(0,1,0.1)
,解决。
更多推荐
已为社区贡献5条内容
所有评论(0)