Esk*_*kil 15 python types numpy
所以我的数字程序有问题,我很好奇它是否是精度问题(即舍入错误).有没有一种快速的方法可以将程序中的所有浮点数组更改为float128数组,而无需通过我的代码并dtype='float128'在整个地方键入内容.我的数组都是float64,但我从未明确写过dtype='float64',所以我希望有一种方法可以改变这种默认行为.
Sve*_*ach 16
我不认为你可以改变一个中心"配置"来实现这一目标.一些选项你可以做什么:
如果您只使用NumPy的很少的工厂函数创建数组,请用您自己的版本替换这些函数.如果您导入这些功能,如
from numpy import empty
Run Code Online (Sandbox Code Playgroud)
你可以这样做
from numpy import float128, empty as _empty
def empty(*args, **kwargs):
kwargs.update(dtype=float128)
_empty(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
如果你在做
import numpy
Run Code Online (Sandbox Code Playgroud)
你可以写一个模块 mynumpy.py
from numpy import *
_empty = empty
def empty(*args, **kwargs):
kwargs.update(dtype=float128)
_empty(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
并导入它
import mynumpy as numpy
Run Code Online (Sandbox Code Playgroud)重构您的代码以始终使用dtype=myfloat.这将使这些变化在未来变得容易.您可以将此方法与使用方法相结合numpy.empty_like(),numpy.zeros_like()并numpy.ones_like()在适当的位置将实际数据类型硬编码在尽可能少的位置.
子类numpy.ndarray,仅使用自定义构造函数创建新数组.
| 归档时间: |
|
| 查看次数: |
9201 次 |
| 最近记录: |