8000 Support floating point hex representation in loadtxt (Trac #1924) · Issue #2517 · numpy/numpy · GitHub
[go: up one dir, main page]

Skip to content
Support floating point hex representation in loadtxt (Trac #1924) #2517
Closed
@numpy-gitbot

Description

@numpy-gitbot

Original ticket http://projects.scipy.org/numpy/ticket/1924 on 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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0