2017-03-24 54 views
0

我希望通過numpy.arange得到一個簡單的小數範圍。 但是,我的代碼輸出意外的結果和大小。 我的代碼片段如下所示。包括numpy arange中的數字

len(arange(0.60,0.70,0.01)) 

返回尺寸10 ndarray對象

array([0.60, ... ,0.69]) 

而且,最大值爲改變

len(arange(0.60,0.80,0.01)) 

array([0.60, ... , 0.79, 0.80]) 

我預期也將返回大小20之一。

陣列([0.60,...,0.79])

但是,尺寸爲21和0.80是包括在內。
你能解釋這是爲什麼?兩個範圍有什麼區別?

的Python:3.5.2
numpy的:1.10.1

回答

1

numpy.arange documentation被writen,

「當使用一個非整數步驟,例如0.1,結果通常不會是一致的。對這些情況最好使用linspace。「

注意linspace包括端點,所以這np.linspace(0.60,0.69,10)會產生

array([ 0.6 , 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69]) 
+0

我忽略文檔和老問題。感謝您的回答。 – ric