学无先后,达者为师

网站首页 编程语言 正文

Python中range()与np.arange()的具体使用_python

作者:王致列   更新时间: 2022-08-20 编程语言

np.arange()

np.arange()函数返回一个有终点和起点的固定步长的排列,如[1,2,3,4,5],起点是1,终点是6,步长为1。

参数个数情况: np.arange()函数分为一个参数,两个参数,三个参数三种情况

  • 一个参数时,参数值为终点,起点取默认值0,步长取默认值1。
  • 两个参数时,第一个参数为起点,第二个参数为终点,步长取默认值1。
  • 三个参数时,第一个参数为起点,第二个参数为终点,第三个参数为步长。其中步长支持小数
 # 一个参数 默认起点0,步长为1 输出:[0 1 2 3 4 5]
a = np.arange(5)
 
# 两个参数 默认步长为1 输出[3 4 5]
a = np.arange(3,6)
 
# 三个参数 起点为0,终点为3,步长为0.5 输出[ 0.   0.5   1.   1.5   2.   2.5]
a = np.arange(0, 3, 0.5)

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

>>> np.linspace(2.0, 3.0, num=5)
array([ 2.  ,  2.25,  2.5 ,  2.75,  3.  ])
>>> np.linspace(2.0, 3.0, num=5, endpoint=False)
array([ 2. ,  2.2,  2.4,  2.6,  2.8])
>>> np.linspace(2.0, 3.0, num=5, retstep=True)
(array([ 2.  ,  2.25,  2.5 ,  2.75,  3.  ]), 0.25)

range()

函数语法:

range(stop)
range(start, stop[, step])

参数说明:

  • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
  • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
  • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
>>>range(5)
range(0, 5)
>>> for i in range(5):
...     print(i)
... 

>>> list(range(5))
[0, 1, 2, 3, 4]
>>> list(range(0))
[]

有两个参数或三个参数的情况(第二种构造方法):

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

range()和np.arange()区别

arange()是Numpy中的函数,它和python自带函数range()的功能貌似比较相同。但是range()和np.arange()有一些区别:

  • range()和np.arange()的返回类型不同,range()返回的是range这个object,而np.arange()返回的是ndarray类型;
  • range()不支持步长为小数,而np.arange()支持步长(step)为小数;
  • range()和np.arange()都可用于迭代;
  • range()和np.arange()都有三个参数,以第一个参数为起点,第三个参数为步长,截止到第二个参数之前的不包括第二个参数的数据序列。
  • range()可用于迭代,而np.arange()作用远不止于此,它是一个序列,可被当做向量使用。

原文链接:https://blog.csdn.net/Star_of_science/article/details/118820791

栏目分类
最近更新