【ML】range、arange和linspace函数
区别
range函数属于python的自带包。而arange和linspace是numpy包下的函数。
python的range函数
语法:range(start, stop[, step])
举例
- 不带step参数
a = range(1,5)
print(a)
输出:range(1,5)
,输出是一个range对象,可以用来迭代。比如:
b = [i for i in a]
print(b)
输出:[1, 2, 3, 4]
- 带step参数(注意step必须为integer类型)
a = range(1,5,2)
b = [i for i in a]
print(b)
输出:[1, 3]
numpy的arange函数
语法:arange([start,] stop[, step,], dtype=None)
与Python的range函数类型,主要不同点有3个:
- start参数非必须,默认为0
- step可以是float类型
- 返回值是ndarray类型
应该说arange是range的替代品,功能更强。
举例
- 只指定stop参数
a = np.arange(3)
print(a)
输出:[0 1 2]
- 指定start和stop参数
a = np.arange(3,10)
print(a)
输出:[3 4 5 6 7 8 9]
- 指定start、stop、step参数
a = np.arange(3,10,2)
print(a)
输出:[3 5 7 9]
- 指定step为float类型
a = np.arange(3,10,0.5)
print(a)
输出:[3. 3.5 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5]
numpy的linspace函数
语法:numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
- start : 开始值
- stop:结束值
- num: 等分成多少份,这里注意和上面的step区别
- endpoint: 是否将stop值包含在结果内
- retstep: 是否同时返回step。即等分用的step
- dtype: 返回值类型
- axis: 可选值为0,-1, 当 start和stop为数组时设置轴的方向(不常用)
参数都比较清晰,这里就不展开了。大家按照需求选用linspace和arange即可