运行numpy.test('full')报错,过往numpy计算会不会出现静默错误?
结论
绝大多数情况下你不需要担心此前用numpy完成的计算存在未感知的静默错误,理由如下:
- 整体测试通过率极高:你运行的
numpy.test('full')完整测试共9028项通过,仅1项失败,其余跳过、预期失败、预期通过的条目均属于numpy测试套件的正常设计范畴,说明核心计算模块的稳定性完全符合预期。 - 仅有的失败测试影响范围极小:失败的是
numpy/random/tests/test_generator_mt19937.py下的断言测试,仅涉及MT19937随机数生成器的特定校验逻辑。如果你的业务代码没有依赖numpy.random模块下的MT19937专用接口,该失败完全不会对你的历史计算结果产生任何影响;即使你用到了相关随机数接口,这类单测失败大多来源于平台适配、编译参数差异导致的边界校验不通过,极少会产生无报错的错误数值结果。 - 出现的警告属于测试套件的正常预期:你看到的
ComplexWarning是FFT测试用例主动构造的复数转实数操作触发的,目的是验证numpy的类型转换警告机制是否正常工作,和你自己编写的业务代码没有关联,不会对你的计算逻辑产生任何影响。
可选处理建议
如果你此前的业务代码重度依赖MT19937随机数生成器做高精度随机仿真、对随机序列连续性有严格要求,可以尝试重新安装适配你系统版本的numpy,或者升级到更新的稳定版numpy;普通数据分析、常规数值计算场景无需做任何处理。
内容的提问来源于stack exchange,提问作者zell
相关产品推荐
相关产品推荐

