您的位置:首页 > 编程语言 > Python开发

Python基础--range()和np.arrange()的区别与联系

2017-12-03 16:01 633 查看
在使用python时,我们经常需要使用Numpy,而Numpy中又有arange()这个函数,它和python自带函数range()的功能貌似比较相同。那么,range()和np.arange()有什么区别呢?我们先来看官方文档对他们的说明。

range(start, stop[, step])

这是一个通用的函数来创建包含算术级数的列表。它最常用于for循环。参数必须是纯整数。如果省略step参数,则默认为1。

如果省略start参数,则默认为0。完整的形式返回一个普通整数列表。如果步骤是肯定的,最后一个元素是小于停止的最大元素; 如果step是负数,最后一个元素是大于stop的最小元素。 步骤不能为零(否则报错)。

示例:

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5)
[0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3)
[0, 3, 6, 9]
>>> range(0, -10, -1)
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> range(0)
[]
>>> range(1, 0)
[]




来源:https://docs.python.org/2/library/functions.html#range

numpy.arange([start, ]stop, [step, ]dtype=None)

在给定的时间间隔内返回均匀间隔的值。

在半开区间[start, stop)内产生值 (换句话说,包括开始但不包括停止的区间)。对于整数参数,该函数等同于Python内置的 范围函数,但返回一个ndarray而不是一个列表。

当使用非整数步长(如0.1)时,结果往往不一致。这些情况下最好使用linspace。

参数:

start:数字,可选

间隔开始。间隔包括这个值。默认的起始值是0。

stop:数字

间隔结束。间隔不包括此值,但在某些情况下,步骤不是整数,浮点舍入会影响out的长度。

dtype:步长,可选

值之间的间隔。对于任何输出出来,这是两个相邻值之间的距离,进行[I + 1] - 出[I] 。默认步长为1.如果指定了step,则还必须给出start。

dtype:dtype

输出数组的类型。如果没有给出dtype,则从其他输入参数推断数据类型。

返回:

类型:ndarray

数组间距均匀的值。

对于浮点参数,结果的长度是 ceil((stop - start)/ step)。由于浮点溢出,此规则可能导致out的最后一个元素大于stop。

示例:

>>> np.arange(3)
array([0, 1, 2])
>>> np.arange(3.0)
array([ 0.,  1.,  2.])
>>> np.arange(3,7)
array([3, 4, 5, 6])
>>> np.arange(3,7,2)
array([3, 5])




来源:https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.arange.html

通过上面官方文档的描述,我们可以知道:

range()和np.arange()的返回类型不同,range()返回的是range;

object,而np.arange()返回的是ndarray类型;

range()不支持步长为小数,而np.arange()支持步长(step)为小数;

range()和np.arange()都可用于迭代;

range()和np.arange()都有三个参数,以第一个参数为起点,第三个参数为步长,截止到第二个参数之前的不包括第二个参数的数据序列。

range()可用于迭代,而np.arange作用远不止于此,它是一个序列,可被当做向量使用。

参考资料:

Python 2.7.14 documentation

numpy v1.10.1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: