我希望通过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
答案 0 :(得分:1)
正如numpy.arange documentation所述,
“当使用非整数步骤(例如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])