numpy.linspace 等差数列

linspace的功能最初是从MATLAB中学来的,用来创建等差数列。

 

numpy.linspace

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)[source]

Return evenly spaced numbers over a specified interval.

Returns num evenly spaced samples, calculated over the interval [startstop].

The endpoint of the interval can optionally be excluded.

Parameters:

start : scalar

The starting value of the sequence.

stop : scalar

The end value of the sequence, unless endpoint is set to False. In that case, the sequence consists of all but the last of num + 1 evenly spaced samples, so that stopis excluded. Note that the step size changes when endpoint is False.

num : int, optional

Number of samples to generate. Default is 50. Must be non-negative.

endpoint : bool, optional

If True, stop is the last sample. Otherwise, it is not included. Default is True.

retstep : bool, optional

If True, return (samplesstep), where step is the spacing between samples.

dtype : dtype, optional

The type of the output array. If dtype is not given, infer the data type from the other input arguments.

New in version 1.9.0.

Returns:

samples : ndarray

There are num equally spaced samples in the closed interval [start, stop] or the half-open interval [start, stop) (depending on whether endpoint is True or False).

step : float, optional

Only returned if retstep is True

Size of spacing between samples.

例:
1,print(np.linspace(1,100,20, dtype=int))

 

输出:

[  1   6  11  16  21  27  32  37  42  47  53  58  63  68  73  79  84  89
  94 100]
 
可以发现,上面的差有的是5,有的是6,和别的不一样
原因在于1-100分成20个的话,无法等分。 
要想正好等分的话, 应该满足这样:
stop-start/num -1 为整数
上面的例子如果这样改,print(np.linspace(0,100,21, dtype=int, endpoint=True))
输出变成
[ 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100]

或者print(np.linspace(1,101,21, dtype=int, endpoint=True))

输出变成
[ 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101]
 
2,print(np.linspace(1,100,20, dtype=int, endpoint=False))
 
[ 1 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95]
 
endpoint=False,表示不包括stop的100,就是1-100之间的数,成分20份,但是最后一个数又要小于100

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值