数値プログラムに問題があり、精度の問題 (つまり、丸め誤差) であるかどうかが気になっています。float128
コードを調べたり、dtype='float128'
あちこちに入力したりせずに、プログラム内のすべての float 配列を配列にすばやく変更する方法はありますか。配列はすべて float64 ですが、明示的に と書いたことがないdtype='float64'
ので、このデフォルトの動作を変更する方法があることを期待していました。
ベストアンサー1
これを実現するために変更できる中心的な「構成」はないと思います。実行できるいくつかのオプションは次のとおりです。
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
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()
サブクラスを作成
numpy.ndarray
し、カスタム コンストラクターのみを使用して新しい配列を作成します。