Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Numpy dtype=int_Python_Python 3.x_Numpy_Numpy Ndarray_Numerical Computing - Fatal编程技术网

Python Numpy dtype=int

Python Numpy dtype=int,python,python-3.x,numpy,numpy-ndarray,numerical-computing,Python,Python 3.x,Numpy,Numpy Ndarray,Numerical Computing,在下面的代码中,我得到了x1的预期结果 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的结果不是[01 2 3 4 5 6 6 7 8 9 10],而是将x2的值设为[01 2 3 4 5 6 7 8 9 10 11 12],其中

在下面的代码中,我得到了x1的预期结果

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的结果不是
[01 2 3 4 5 6 6 7 8 9 10]
,而是将x2的值设为
[01 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]
根据文件:

站牌:号码 幕间休息结束。间隔不包括此值,除非在某些情况下步长不是整数且浮点舍入会影响输出的长度

阿兰奇:天哪 等间距值的数组。
对于浮点参数,结果的长度为ceil((停止-启动)/step)。由于浮点溢出,此规则可能导致out的最后一个元素大于stop

最后一个元素是

In [33]: np.ceil((10.4-0.5)/0.8)                                                
Out[33]: 13.0
因此,在
np.arange(0.5,10.4,0.8,dtype=int)
的情况下,我们看到超调为12,因为在上述情况下
stop=13
,默认值为0

因此,我们观察到的输出是

In [35]: np.arange(0.5, 10.4, 0.8, dtype=int)                                   
Out[35]: array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])
因此,生成整数范围的更好方法是使用如下整数参数:

In [25]: np.arange(0, 11, 1)                                                    
Out[25]: array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10])