weixin_44200144 2022-04-22 20:00 采纳率: 100%
浏览 503
已结题

python 的numpy中arange()函数终值包含问题

import numpy as np
ab=np.arange(1.58,1.61,0.01)
abc=np.arange(1.58,1.65,0.01)
print(ab)
print(abc)

结果:
[1.58 1.59 1.6 1.61]
[1.58 1.59 1.6 1.61 1.62 1.63 1.64]

问题:arange()函数一个包含终值,一个不包含终值,是为啥呢?

  • 写回答

1条回答 默认 最新

  • 夜半罟霖 2022-04-22 20:49
    关注

    这个问题你可以去看看np.arange的官方文档,里面提到说如果step不是整数时,建议使用np.linespace函数,因为此时np.arange函数存在着数值不稳定的问题。实际上np.arange函数采用的step是dtype(start+step)-dtype(start),当dtype参数没有显式给出的时候会根据其他输入参数进行推断,输入的为float类型,计算出的实际step就也为float型,且不稳定一般不等于原始输入step。见下述代码:

    float(1.58+0.1)-float(1.58)
    Out[20]: 0.10000000000000009
    

    官方文档:
    https://numpy.org/doc/stable/reference/generated/numpy.arange.html

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月17日
  • 已采纳回答 5月9日
  • 创建了问题 4月22日

悬赏问题

  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法