Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.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 linspace间距不均匀_Python_Numpy - Fatal编程技术网

Python Numpy linspace间距不均匀

Python Numpy linspace间距不均匀,python,numpy,Python,Numpy,我要生成0到1之间的50个等距数字 首先,我尝试使用numpy.arange(0,1,0.02),下面是我得到的输出 [0. 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 0.22 0.24 0.26 0.28 0.3 0.32 0.34 0.36 0.38 0.4 0.42 0.44 0.46 0.48 0.5 0.52 0.54 0.56 0.58 0.6 0.62 0.64 0.66 0.68 0.7 0.72 0.7

我要生成0到1之间的50个等距数字

首先,我尝试使用numpy.arange(0,1,0.02),下面是我得到的输出

[0.   0.02 0.04 0.06 0.08 0.1  0.12 0.14 0.16 0.18 0.2  0.22 0.24 0.26
 0.28 0.3  0.32 0.34 0.36 0.38 0.4  0.42 0.44 0.46 0.48 0.5  0.52 0.54
 0.56 0.58 0.6  0.62 0.64 0.66 0.68 0.7  0.72 0.74 0.76 0.78 0.8  0.82
 0.84 0.86 0.88 0.9  0.92 0.94 0.96 0.98]
但后来我发现端点并不是其中的一部分,所以我考虑使用linspace 时间=np.linspace(0,1,50),输出为

[0.         0.02040816 0.04081633 0.06122449 0.08163265 0.10204082
 0.12244898 0.14285714 0.16326531 0.18367347 0.20408163 0.2244898
 0.24489796 0.26530612 0.28571429 0.30612245 0.32653061 0.34693878
 0.36734694 0.3877551  0.40816327 0.42857143 0.44897959 0.46938776
 0.48979592 0.51020408 0.53061224 0.55102041 0.57142857 0.59183673
 0.6122449  0.63265306 0.65306122 0.67346939 0.69387755 0.71428571
 0.73469388 0.75510204 0.7755102  0.79591837 0.81632653 0.83673469
 0.85714286 0.87755102 0.89795918 0.91836735 0.93877551 0.95918367
 0.97959184 1.        ]
我不明白为什么这不是均匀分布的,因为0.0204816+0.0204816=0.04081632,但在序列中,它显示0.04081633,请解释一下。
为了获得像arrange这样的输出,我使用了np.around

,正如HansHirse提到的,它应该是
np.linspace(0,1,51)
,因为
np.linspace
不包括最后一个数字

如果您想使用
np.arange
获得相同的结果,只需使用
np.arange(0,1.02,0.02)
。只需将最后一个数字添加到
np.arange
中的第二个数字,您希望打印的最后一个数字也会被打印出来


希望这有帮助

正如HansHirse所提到的,它应该是
np.linspace(0,1,51)
,因为
np.linspace
不包括最后一个数字

如果您想使用
np.arange
获得相同的结果,只需使用
np.arange(0,1.02,0.02)
。只需将最后一个数字添加到
np.arange
中的第二个数字,您希望打印的最后一个数字也会被打印出来


希望这有帮助

实现0到1之间50个均匀间隔的数字
np。linspace(0,1,50)
完全正确

如果您希望得到与
np.arange(0,1,0.02)
相同的结果,可以使用
np.linspace(0,0.98,50)
,因为arange函数也会在0.98处停止

numpy.linspace(0,0.98,50)

array([0.  , 0.02, 0.04, 0.06, 0.08, 0.1 , 0.12, 0.14, 0.16, 0.18, 0.2 ,
       0.22, 0.24, 0.26, 0.28, 0.3 , 0.32, 0.34, 0.36, 0.38, 0.4 , 0.42,
       0.44, 0.46, 0.48, 0.5 , 0.52, 0.54, 0.56, 0.58, 0.6 , 0.62, 0.64,
       0.66, 0.68, 0.7 , 0.72, 0.74, 0.76, 0.78, 0.8 , 0.82, 0.84, 0.86,
       0.88, 0.9 , 0.92, 0.94, 0.96, 0.98])

要在0到1之间获得50个均匀间隔的数字,linspace(0,1,50)是完全正确的

如果您希望得到与
np.arange(0,1,0.02)
相同的结果,可以使用
np.linspace(0,0.98,50)
,因为arange函数也会在0.98处停止

numpy.linspace(0,0.98,50)

array([0.  , 0.02, 0.04, 0.06, 0.08, 0.1 , 0.12, 0.14, 0.16, 0.18, 0.2 ,
       0.22, 0.24, 0.26, 0.28, 0.3 , 0.32, 0.34, 0.36, 0.38, 0.4 , 0.42,
       0.44, 0.46, 0.48, 0.5 , 0.52, 0.54, 0.56, 0.58, 0.6 , 0.62, 0.64,
       0.66, 0.68, 0.7 , 0.72, 0.74, 0.76, 0.78, 0.8 , 0.82, 0.84, 0.86,
       0.88, 0.9 , 0.92, 0.94, 0.96, 0.98])

np.linspace(0,1,51)
!?如果您使用
np.diff(np.linspace(0,1,50))
进行检查,您将看到它的空间是均匀的,HansHirse和Nils-Werner很多,因此在linspace中,数字点应该是数字点+1,以包括终点!在可以计算值的地方尝试更小的方法,例如
linspace(0,1,11)
(或10)
np.linspace(0,1,51)
!?如果您使用
np.diff(np.linspace(0,1,50))
进行检查,您将看到它的空间是均匀的,HansHirse和Nils-Werner很多,因此在linspace中,数字点应该是数字点+1,以包括终点!尝试一些较小的方法,可以计算值,例如
linspace(0,1,11)
(或10),但我希望包含端点1,因此我用linspace替换了arange,但我希望包含端点1,因此我用linspace替换了arange