8000 Support floating point hex representation in loadtxt (migrated from Trac #1924) · Issue #3472 · thouis/numpy-trac-migration · GitHub
[go: up one dir, main page]

Skip to content

Support floating point hex representation in loadtxt (migrated from Trac #1924) #3472

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
thouis opened this issue Sep 27, 2012 · 1 comment

Comments

@thouis
Copy link
Owner
thouis commented Sep 27, 2012

Original ticket http://projects.scipy.org/numpy/ticket/1924
Reported 2011-08-03 by trac user claumann, assigned to unknown.

Python supports a hexadecimal representation for floating numbers in float.hex() and float.fromhex():

a = 3.14

a.hex()
'0x1.91eb851eb851fp+1'

float.fromhex(a.hex())
3.14

Numpy's loadtxt does not support this hex text format but it seems like it would be a useful enhancement. For example, a simple implementation might come from changing the default converter returned by _getconv for columns of type float:

def _floatconv(x):
try:
return float(x)
except ValueError:
pass
return float.fromhex(x)

And then change the return float in _getconv to return _floatconv. This converter obeys essentially the same semantics (and exceptions) as float() except that it falls back on fromhex before giving up.

A slightly less permissive change would be to check that the string x begins with '0x' before calling fromhex and throwing a ValueError if not. The code above would accept 'bad' and convert it to 2989, which might be unnecessarily permissive.

Best, Chris

@thouis
Copy link
Owner Author
thouis commented Sep 27, 2012

Comment in Trac by atmention:rgommers, 2011-08-10

see numpy/numpy#133

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant
0