-
range()
返回的是range object
,而np.nrange()
返回的是numpy.ndarray()
range
盡可用於迭代,而np.nrange
作用遠不止於此,它是一個序列,可被當做向量使用。 -
range()
不支持步長為小數,np.arange()
支持步長為小數 -
兩者都可用於迭代
-
兩者都有三個參數,以第一個參數為起點,第三個參數為步長,截止到第二個參數之前的不包括第二個參數的數據序列
某種意義上,和STL中由迭代器組成的區間是一樣的,即左閉右開的區間。[first, last)
或者不加嚴謹地寫作[first:step:last)
>>>range(1,5) range(1,5) >>>tuple(range(1, 5)) (1, 2, 3, 4) >>>list(range(1, 5)) [1, 2, 3, 4] >>>r = range(1, 5) >>>type(r) <class 'range'> >>>for i in range(1, 5): ... print(i) 1 2 3 4 >>> np.arange(1, 5) array([1, 2, 3, 4]) >>>range(1, 5, .1) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'float' object cannot be interpreted as an integer >>>np.arange(1, 5, .5) array([ 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5]) >>>range(1, 5, 2) >>>for i in range(1, 5, 2): ... print(i) 1 3 >>for i in np.arange(1, 5): ... print(i) 1
2
3
4