NumPyで浮動小数点数の仮数と指数を抽出したいと考えています。指数を整数で取得するのは問題ありません。仮数部をビットフィールドとして取得することは、さらに便利になります。NumPyでの浮動小数点仮数と指数の抽出
私はPython浮動小数点数がhex
メソッドを持っていることを知っています。しかし、numpy.float32
、numpy配列、およびufuncsを使用したいと思います。私はまた、私は整数としてので、バイナリ文字列としてfloatを見ることができますnumpyのview
方法を認識しています:大手0がドロップされるように、この方法で指数と符号を抽出
>>> import numpy as np
>>> b = bin(np.float32(1.23456789).view(np.int32))
'0b111111100111100000011001010010'
>>> b[-23:] # extract last 23 bits of IEEE 754 binary32 float, is significand
'00111100000011001010010'
は、便利ではありませんbin
。 (私は0に32ビットに左パッドすることができました...)
いずれにしても、bin
はufuncではないので、これは便利ではありませんし、配列全体を反復処理する必要があります。
私がしたいことをするために、より便利なアプローチはありませんか?
[この回答](https://stackoverflow.com/a/16444786/3214872)をご覧ください。それはあなたの方向を指すかもしれません – GPhilo
@GPhilo:ありがとう。実際、その答えは、いいえ、それ以上の便利なアプローチがないことを明確にしているようです。 – equaeghe
['numpy.frexp'](https://docs.scipy.org/doc/numpy/reference/generated/numpy.frexp.html)を見てください –