30

numpy.float64 を文字列に出力して変換する適切な/受け入れられる方法は何ですか? print使用しただけで、str()精度が失われることに気付きました。ただし、repr完全な精度を維持します。例えば:

>>> import numpy
>>> print numpy.float64('6374.345407799015')
6374.3454078
>>> print repr(numpy.float64('6374.345407799015'))
6374.3454077990154
  1. print を呼び出すだけstr()で、float64 オブジェクトを呼び出すことになると思います。numpy.float64の__str__()ようなもので実装されている'%s' % (float(self))か、何らかの方法で Python の組み込みで float64 をキャストしていfloat()ますか? 私はこれについて numpy のソースをすばやく調べようとしましたが、何が起こっているのかすぐにはわかりませんでした。

  2. オブジェクトを再作成するためrepr()に使用できる有効な Python コードを返す必要があると常に考えていました。eval()これは受け入れられた慣例ですか?repr()幸いなことに、この場合、 numpyはこの慣例に従いません"numpy.float64('6374.345407799015')"

だから、これらすべてが私を混乱させます。常に同じ完全な精度を保証しながら、numpy.float64 を文字列に変換および/または出力する正しい方法は何ですか?

4

2 に答える 2

8

numpy.set_printoptionsを調べてください。具体的には、

numpy.set_printoptions(precision=15)
于 2012-10-18T14:00:57.953 に答える