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

Python如何获得相同步长的小数数列 附range与numpy包中arange函数的用法与区别

2017-08-29 22:24 531 查看
用两种方法:

1、使用while语句构造循环,如

   x = []

   while i<3.0:

       i += 0.1

       x.append(i) 

2、使用numpy的函数arange():

    x = numpy.arange(-3.0, 3.0, 0.1)

自己总结一句话:

如果想得到小数数列的话可以用numpy中的arange函数,自带的range函数只能得到整数类型的序列(注意当需要小数序列时用该函数会报错)。

所以可以说arange函数的功能更加强大,因为既可以用它得到整数序列也可以得到小数序列,下面转载是详细说明。

出处:http://blog.csdn.net/weixin_37226516/article/details/60881914

range()函数

函数说明: range(start, stop[, step]) -> range object,根据start与stop指定的范围以及step设定的步长,生成一个序列。
参数含义:start:计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5);
              end:技术到end结束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
              scan:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
函数返回的是一个range object

例子:

[python]
view plain
copy

>>> range(0,5)                 #生成一个range object,而不是[0,1,2,3,4]   
range(0, 5)     
>>> c = [i for i in range(0,5)]     #从0 开始到4,不包括5,默认的间隔为1  
>>> c  
[0, 1, 2, 3, 4]  
>>> c = [i for i in range(0,5,2)]   #间隔设为2  
>>> c  
[0, 2, 4]  

[python]
view plain
copy

>>> range(0,5)               #生成一个range object,而不是[0,1,2,3,4]   
range(0, 5)     
>>> c = [i for i in range(0,5)]     #从0 开始到4,不包括5,默认的间隔为1  
>>> c  
[0, 1, 2, 3, 4]  
>>> c = [i for i in range(0,5,2)]   #间隔设为2  
>>> c  
[0, 2, 4]  

若需要生成[ 0.   0.1  0.2  0.3  0.4  0.5  0.6  0.7  0.8  0.9]

[python]
view plain
copy

>>> range(0,1,0.1)    #range中的setp 不能使float  
Traceback (most recent call last):  
  File ”<pyshell#5>”, line 1, in <module>  
    range(0,1,0.1)  
TypeError: ’float’ object cannot be interpreted as an integer  

[python]
view plain
copy

>>> range(0,1,0.1)    #range中的setp 不能使float  
Traceback (most recent call last):  
  File "<pyshell#5>", line 1, in <module>  
    range(0,1,0.1)  
TypeError: 'float' object cannot be interpreted as an integer  

arange()函数(注意:不是arrange,虽然英文中有"arrange"单词,没有"arange"单词)

函数说明:arange([start,] stop[, step,], dtype=None)根据start与stop指定的范围以及step设定的步长,生成一个 ndarray。 dtype : dtype

        The type of the output array.  If `dtype` is not given, infer the data

        type from the other input arguments.

[python]
view plain
copy

>>> 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])  

[python]
view plain
copy

>>> 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])  

[python]
view plain
copy

>>> arange(0,1,0.1)  
array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9])  

[python]
view plain
copy

>>> arange(0,1,0.1)  
array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9]) 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: