Python基础--range()和np.arrange()的区别与联系
在使用python时,我们经常需要使用Numpy,而Numpy中又有arrange()这个函数,它和python自带函数range()的功能貌似比较相同。那么,range()和np.arrange()有什么区别呢?我们先来看官方文档对他们的说明。range(start, stop[, step])这是一个通用的函数来创建包含算术级数的列表。它最常用于for循环。参数必须是纯整数。如果省略step参
在使用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作用远不止于此,它是一个序列,可被当做向量使用。
参考资料:
更多推荐
所有评论(0)