在下面的代码中,我得到了x1的预期结果。
但是在下面的代码中,当我设置dtype=int时,为什么x2的结果不是
import numpy as np
x1 = np.arange(0.5, 10.4, 0.8)
print(x1)
[ 0.5 1.3 2.1 2.9 3.7 4.5 5.3 6.1 6.9 7.7 8.5 9.3 10.1]
但是在下面的代码中,当我设置dtype=int时,为什么x2的结果不是
[ 0 1 2 2 3 4 5 6 6 7 8 9 10]
,而是得到x2的值为[ 0 1 2 3 4 5 6 7 8 9 10 11 12]
,其中最后一个值12超过了10.4的结束值。请解释一下我的概念。import numpy as np
x2 = np.arange(0.5, 10.4, 0.8, dtype=int)
print(x2)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12]
[0 1 2 2 3 4 5 6 6 7 8 9 10 11]
这样,其中一个或多个元素被重复,并且最多超出1。答案在这个文档句子中找到:“用于填充数组的实际步骤值是dtype(start + step)- dtype(start)”。在这种情况下,步幅值变成了1而不是0.8。 - ToolmakerSteve