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的最小元素。 步骤不能为零(否则报错)。
示例:
来源: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。
示例:
来源: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
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
相关文章推荐
- python np.arange,np.linspace和np.logspace之间的区别
- python 类变量和对象变量的区别联系-----类的基础(二)
- Python range和xrange的区别和联系
- Python range和xrange的区别和联系
- python(47):range和xrange的区别和联系
- Python 基础——range() 与 np.arange()
- python中range()、xrange()和np.arange()区别
- Python基础语法笔记--xrange()与range()的区别、map、filter、reduce分析、lambda表达式
- python基础:xrange和range区别
- python基础-range用法_python2.x和3.x的区别
- Python 基础——range() 与 np.arange()
- python中range()、xrange()和np.arange()区别
- python中的o[np.arange(len(y)), y]
- 黑马程序员java基础学习日记——做题遇到GBK查资料发现了个有趣的文章——ASCII、Unicode、GBK和UTF-8字符编码的区别联系
- Python xrange与range的区别
- python 包和模块 等于号(==)和is的区别与联系 对象的拷贝(copy)
- Linux基础:信号量和互斥锁区别与联系
- leetcode-1:python基础,循环、条件、列表、字典的应用,enumerate、range函数以及2.0和3.0print的区别
- Java基础知识强化98:Apache和Tomcat服务器的联系与区别
- Python中range与xrange的区别