2

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

问的原因 - 纯粹的好奇心。除非有人能想出一个充分的理由来指望这种行为?谢谢。

4

1 回答 1

3

这是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(默认情况下),如果小于 2 ,np.linspace也可能不会返回端点: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.])
于 2013-11-06T20:16:21.130 回答