Python—range()
语法: 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,
numpy.arange()
语法: np.arange([start, ]stop, [step, ]dtype=None)
参数说明:
start:可忽略不写,默认从0开始;起始值
stop: 结束值;生成的元素不包括结束值
step: 可忽略不写,默认步长为1;步长
dtype: 默认为None,设置显示元素的数据类型
举例
>>>range(1,5)
range(1,5)
>>>tuple(range(1, 5))
(1, 2, 3, 4)
>>>list(range(1, 5))
[1, 2, 3, 4]
import numpy as np
nd1 = np.arange(5) #array([0, 1, 2, 3, 4])
nd2 = np.arange(1,5) #array([1, 2, 3, 4])
"""
上面两句等价于 nd2 = list(range(1,5))
"""
nd3 = np.arange(1,5,2) #nd3 = np.arange(1,5,2)
"""
可以对生成的等差一维数组,进行重塑,使用的是reshape(行,列)
注意:对数组重塑后的元素个数不能大于原来本身的元素个数,不然会报错
比如说,nd2生成了四个元素,你要重塑(2,3)就是六个元素,会报错的
"""
nd2.reshape(2,2) #array([[1, 2], [3, 4]])
区别:
- range()返回的是range object,而np.nrange()返回的是numpy.adarray(),两者都是均匀地(evenly)等分区间;
- range尽可用于迭代,而np.arange作用远不止于此,它是一个序列,可被当做向量使用
- range()不支持步长为小数,np.arange()支持步长为小数
参考:https://www.jianshu.com/p/d7d3ae1f096f
https://blog.youkuaiyun.com/lanchunhui/article/details/49493633