分享

range()和np.arange()的区别

 霖霖爱医学 2020-06-25

在使用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./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./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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多