当前位置: 首页 > 面试题库 >

Python Numpy Arange意外结果

汪阿苏
2023-03-14
问题内容

我正在使用arange函数来定义for循环迭代并获得意外结果。

i = arange(7.8,8.4,0.05)
print i

满足以下条件:

[ 7.8   7.85  7.9   7.95  8.    8.05  8.1   8.15  8.2   8.25  8.3   8.35 8.4 ]

仍使用8.35的停止值,如下所示

i = arange(7.8,8.35,0.05)

产生以下

[ 7.8   7.85  7.9   7.95  8.    8.05  8.1   8.15  8.2   8.25  8.3 ]

但是我希望我的射程结束于8.35!我知道我可以使用> 8.35和<8.4的止损值来获得我的结果,但是为什么它与众不同并且在我看来不一致?

编辑:我正在使用2.7版


问题答案:

也许这与浮点数的限制有关。由于机器的精度,不可能将所有可能的值完美地存储为浮点数。例如:

>>> 8.4
8.4000000000000004
>>> 8.35
8.3499999999999996

因此,作为浮点数的8.4略大于8.4的实际值,而作为浮点数的8.35则稍小一点。



 类似资料:
  • 问题内容: 给定一个变量,该变量包含巴黎时区的日期时间2000-01-01 00:01(冬季afaik中为UTC + 2): 我希望转换为UTC会导致日期时间为1999-12-31 22:01,但是却得到了: 我想念什么? 谢谢 问题答案: 不幸的是 ,在许多时区使用标准构造函数的参数“不起作用” 。 但是对于没有夏令时转换的时区来说是安全的,例如UTC: 您会注意到: “ LMT + 0:09:

  • 我有以下代码: 为什么它会打印Java流?

  • 我有以下代码,它将标记字符串以创建对象列表: 我预期的输出是 1#、#Jon#、#176 2#、#Jack#、#200 3#、#Jimmy#、#160 如果我把内部分界线更改为类似的东西,它会正常工作为什么会发生这种行为?

  • 在我看来,我的缓冲区包含关于最后一个数据包步骤(路由器->my home)的信息,这些信息解释了为什么TTL值是254以及为什么我用Traceroute找到了相同的两个IP: $>traceroute qwant.com traceroute to qwant.com(194.187.168.99),30跳最大,60字节数据包 172.17.0.1(172.17.0.1)0.026 ms 0.01

  • 问题内容: 我的XML看起来像这样- 我正在使用以下代码进行处理- 它输出为- 我的问题是为什么“孩子数量是”分别为5和3?我不应该分别期望2和1吗?因为第一个对象具有“ 和”,第二个对象仅具有“ ” 本质上,我的意图是处理“对象”的子级。 问题答案: 那是因为每个子节点之间有2 ()。 以下内容包括文本节点及其相应的值。 可以通过修改代码来验证: 输出: 其中,3 = 和1 = 。

  • 问题内容: 我对来自JQuery Ajax请求的Internet Explorer缓存结果存在严重问题。 我的网页上有标题,每次用户导航到新页面时标题都会更新。页面加载后,我就执行此操作 它只是将标头信息注入页面。您可以通过访问www.wikipediamaze.com进行检查,然后登录并开始创建新拼图。 在我测试过的每种浏览器(谷歌浏览器,Firefox,Safari,Internet Expl