Numpy linspace 非预期步长值

2024-09-25 08:25:07 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么下面的代码不会导致step=0.1?我猜这和浮点精度有关,但是如何用正确的方法呢?你知道吗

import numpy as np

lastprice = 3779

binsize = 0.1
minbin = round(lastprice*0.25, 0) - binsize/2
maxbin = round(lastprice/0.25, 0) + binsize/2
bincount = int((maxbin-minbin) / binsize)

bins, steps = np.linspace(minbin, maxbin, num=bincount, retstep=True, endpoint=False)


print(minbin)    
print(maxbin)
print(round((maxbin-minbin),0))
print(bincount)
print(steps)
print(bins)

上述结果产生以下输出:

944.95
15116.05
14171.0
141710
0.100000705666502
[  944.95         945.05000071   945.15000141 ... 15115.74999788 15115.84999859 15115.94999929]

Tags: 方法代码stepnp精度steps浮点print