对于浮点x,是x == numpy.linspace(x,y,n)[0]总是为真吗?

时间:2013-11-06 20:12:46

标签: python numpy floating-point

请注意,我在询问numpy.linspace的端点。保证函数返回包含端点的数组。但是,终点是否保证与提供给函数的参数的浮点相同?

提问的理由 - 纯粹的好奇心。除非有人能想出有理由依靠这种行为吗? 感谢。

1 个答案:

答案 0 :(得分:3)

这是definition of np.linspace

的摘录
def linspace(start, stop, num=50, endpoint=True, retstep=False):
    ...
    if endpoint:
        if num == 1:
            return array([float(start)])
        step = (stop-start)/float((num-1))
        y = _nx.arange(0, num) * step + start   #<-- the first point is `start`
        y[-1] = stop   # <-- the last point is `stop`
    ...
    return y

所以是的,当endpoints为True时,返回的端点将完全等于startstop


请注意,即使endpoints=True(默认为默认值),如果np.linspace小于2,num也可能无法返回端点:

In [8]: np.linspace(0, 1, num=0)
Out[8]: array([], dtype=float64)

In [9]: np.linspace(0, 1, num=1)
Out[9]: array([ 0.])