On Jun 13, 10:45 pm, "John [H2O]" <[EMAIL PROTECTED]> wrote: > I have a script: > > from numpy import float > OutD=[] > v=['3','43','23.4','NaN','43'] > OutD.append([float(i) for i in v[1]]) > > On linux: > Python 2.5.1 (r251:54863, Mar 7 2008, 04:10:12) > [GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2 > [EMAIL PROTECTED] analysis]$ python jnk.py > [[3.0, 43.0, 23.399999999999999, nan, 43.0]] > > On XP: > Python 2.5 (r25:51908, Mar 9 2007, 17:40:28) [MSC v.1310 32 bit (Intel)] > Microsoft Windows XP [Version 5.1.2600] > (C) Copyright 1985-2001 Microsoft Corp. > > C:\analysis>C:\Python25\python.exe jnk.py > Traceback (most recent call last): > File "jnk.py", line 4, in <module> > OutD.append([float(i) for i in v]) > ValueError: invalid literal for float(): NaN
Python just uses the atof() function from the underlying C library. Some of them handle NaN's, and some of them don't. If you want to get NaN on a platform where float('NaN') doesn't work, try 1e1000 / 1e1000. Or failing that, struct.unpack('d', struct.pack('Q', 0xfff8000000000000))[0] -- http://mail.python.org/mailman/listinfo/python-list