1

numpy float32からpythonfloat(float64)に戻って、numpy float32に戻るまで、忠実度や精度を失う可能性はありますか?

データが失われるケースは見当たらないようですが、データが失われることで世界は終わると周りの人から言われています。続行する前に、データが失われたことを証明するドキュメント/例を見つける必要があります。

私を正しい方向に向ける助けをいただければ幸いです。

これが私が見ている典型的なユースケースです:

def serialize(val):
    # val is a np.float32
    return val.astype(float)


def deserialize(msg):
    return np.float32(msg)

message = '1.23456789'
outgoing = serialize(message)
incoming = deserialize(message)
4

1 に答える 1

5

xがfloat32の場合、 float32(float64(x)) == x

唯一の例外はifthenですが、したがって、すべてをキャッチしたい場合は、次のように使用できますx = nannan != nannan is nan

float32(float64(x)) == x or x is nan

注意する必要があります:

float32(1./3)          # 0.33333334
float64(float32(1./3)) # 0.3333333432674408
float64(0.33333334)    # 0.33333333999999998
于 2012-09-20T17:06:33.163 に答える