On Jun 20, 2007, at 04:35 , Torgil Svensson wrote:
HiIs there a reason for numpy.float not to convert it's own string representation correctly?
numpy.float is the Python float type, so there's nothing we can do. I am working on adding NaN and Inf support for numpy dtypes, though, so that, for instance, numpy.float64('-1.#IND') would work as expected. I'll put it higher on my priority list :-)
Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on win32>>> import numpynumpy.__version__'1.0.3'numpy.float("1.0")1.0numpy.nan-1.#INDnumpy.float("-1.#IND")Traceback (most recent call last): File "<pyshell#20>", line 1, in <module> numpy.float("-1.#IND") ValueError: invalid literal for float(): -1.#INDAlso, nan and -nan are represented differently for different float to string conversion methods. I guess the added zeros are a bug somewhere.str(nan)'-1.#IND'"%f" % nan'-1.#IND00'str(-nan)'1.#QNAN'"%f" % -nan'1.#QNAN0' This is a problem when floats are stored in text-files that are later read to be numerically processed. For now I use the following to convert the number. special_numbers=dict([('-1.#INF',-inf),('1.#INF',inf), ('-1.#IND',nan),('-1.#IND00',nan), ('1.#QNAN',-nan),('1.#QNAN0',-nan)]) def string_to_number(x): if x in special_numbers: return special_numbers[x] return float(x) if ("." in x) or ("e" in x) else int(x) Is there a simpler way that I missed? Best Regards, //Torgil _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion
-- |>|\/|< /------------------------------------------------------------------\ |David M. Cooke http://arbutus.physics.mcmaster.ca/dmc/ |[EMAIL PROTECTED]
PGP.sig
Description: This is a digitally signed message part
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion