2024-04-27 21:19:51 发布
网友
所以我的数值程序有问题,我很好奇这是否是一个精度问题(即舍入误差)。有没有一种快速的方法可以将程序中的所有浮点数组都更改为float128数组,而无需遍历我的代码并到处键入dtype='float128'。我的数组都是float64,但是我从来没有显式地写过dtype='float64',所以我希望有一种方法可以改变这个默认行为。
float128
dtype='float128'
dtype='float64'
我不认为有一个中心的“配置”你可以改变,以实现这一点。您可以做的一些选择:
如果您只使用非常少的NumPy工厂函数创建数组,那么用您自己的版本替换这些函数。如果您导入这些函数
from numpy import empty
你就可以
from numpy import float128, empty as _empty def empty(*args, **kwargs): kwargs.update(dtype=float128) _empty(*args, **kwargs)
如果你在做
import numpy
你可以写一个模块mynumpy.py
mynumpy.py
from numpy import * _empty = empty def empty(*args, **kwargs): kwargs.update(dtype=float128) _empty(*args, **kwargs)
像这样导入
import mynumpy as numpy
重构代码以始终使用dtype=myfloat。这将使这种变化在未来变得容易。您可以将此方法与numpy.empty_like()、numpy.zeros_like()和numpy.ones_like()的使用结合起来,以便在尽可能少的地方对实际的数据类型进行硬编码。
dtype=myfloat
numpy.empty_like()
numpy.zeros_like()
numpy.ones_like()
子类numpy.ndarray,并且仅使用自定义构造函数创建新数组。
numpy.ndarray
我不认为有一个中心的“配置”你可以改变,以实现这一点。您可以做的一些选择:
如果您只使用非常少的NumPy工厂函数创建数组,那么用您自己的版本替换这些函数。如果您导入这些函数
你就可以
如果你在做
你可以写一个模块
mynumpy.py
像这样导入
重构代码以始终使用
dtype=myfloat
。这将使这种变化在未来变得容易。您可以将此方法与numpy.empty_like()
、numpy.zeros_like()
和numpy.ones_like()
的使用结合起来,以便在尽可能少的地方对实际的数据类型进行硬编码。子类
numpy.ndarray
,并且仅使用自定义构造函数创建新数组。相关问题 更多 >
编程相关推荐