跳跃范围函数生成数组大小错误

问题描述 投票:0回答:1

当我使用numpy arange函数构建一个numpy数组时,使用形状进行检查时大小不正确。例如,如果我构建一个数组:np.arange(-5,6,1),则形状为(11,)。但是,当我构建array:np.arange(-0.001,0.0011,0.0001)时,形状为(22,)

使用np.array.shape查找形状

python arrays numpy methods shapes
1个回答
0
投票

看起来像当您打印数组时,得到了-

array([-1.00000000e-03, -9.00000000e-04, -8.00000000e-04, -7.00000000e-04,
       -6.00000000e-04, -5.00000000e-04, -4.00000000e-04, -3.00000000e-04,
       -2.00000000e-04, -1.00000000e-04,  4.33680869e-19,  1.00000000e-04,
        2.00000000e-04,  3.00000000e-04,  4.00000000e-04,  5.00000000e-04,
        6.00000000e-04,  7.00000000e-04,  8.00000000e-04,  9.00000000e-04,
        1.00000000e-03,  1.10000000e-03])

当-0.001由值4.33680869e-19建议的0.0001递增0.0001时似乎出现一些舍入问题,这意味着该数组中的每个后续值都比显示的值稍小。这就是为什么最后一个值0.0011不应该包含在数组中的原因。这就是给您形状不匹配的原因。

我建议您这样做,以免舍入成为问题。

x = np.arange(-10,11,1)
x = x/10000
x.shape # gets (21,)
print(x)
© www.soinside.com 2019 - 2024. All rights reserved.