2012-07-02 51 views
2

是否可以在Python中創建自定義NaN值?Python創建自定義NaN

我知道一些關於浮點表示的知識,而NaN是一個帶有一些特殊指數的FP值。因此,每個具有該特殊指數的FP值都是一個NaN。

準確地說,是我想要做的是:

x = make_my_special_NaN(int_seed) 
assert math.isnan(x) 
assert test_my_special_NaN(x, int_seed) 
assert not test_my_special_NaN(float("nan"), int_seed) 

我把它叫做make_my_special_NaN應該採取一個整數的種子能夠 被用來識別特殊的NaN值我有(如果是這樣的功能可能)。

有了這個,應該有可能測試一個給定的NaN值是給定該整數種子的特殊NaN。

在此先感謝

+0

需要確切地知道你需要爲之工作。 numpy的?數學(由你的文章暗示),如果你需要math.isnan看起來會需要monkeypatching和'test_my_specail_NaN'會相當容易。 –

回答

1

structfd格式說明將允許你使用任何你喜歡的位模式。

+0

'struct.unpack('!f','\ x7F \ x80 \ x00 \ x01')'將解包到一個有效位數爲1的'float'NaN。你會得到一個NaN。除了前導部分是''\ x7F \ xF'且有效位是52位以外,'double'一樣。 –