Skip to content

poor categorical support w/ numpy<1.8 #7988

Closed

Description

@story645

Numpy versions < 1.8 play poorly with arrays of mixed type, truncating anything not of type string to the length of the longest string. This is inhibiting #7974

So the issue is as follows

>>> import numpy as np
>>> np.__version__
'1.7.1'
>>> np.array(['A', 'A', np.nan, 'B', -np.inf, 3.14], dtype=np.unicode)
array([u'A', u'A', u'n', u'B', u'-', u'3'], 
      dtype='<U1')

two possible solutions:

  1. Fold back in shims removed in Remove numpy 1.6 specific work-arounds  #7484 that existed mainly to solve this problem
  2. throw a warning if category.py is imported with a numpy<1.8 and skip tests for numpy<1.8

The advantage of 2 is it keeps the code cleaner and this is an edge case of sorts because it's only an issue when the array is of mixed type (strings and numbers). The advantage of 1 is of course edge case support on older systems.

Activity

  1. efiring commented on Jan 30, 2017

    @efiring
    Member

    I think option 1 is preferable--less likely to trigger questions from users, and simpler in that it is localized to a single module. Comments could be added to make it very simple to strip out the shims when we no longer support numpy 1.7.

  2. QuLogic commented on Jan 31, 2017

    @QuLogic
    Member

    I think what we can do is add a skip to #7974 so that testing starts working as it should be, and then @story645 can open a PR restoring the shims which will properly be tested once testing works.

  3. added this to the milestone on Jan 31, 2017
  4. tacaswell commented on Jan 31, 2017

    @tacaswell
    Member

    👍 to @QuLogic 's plan

  5. added 2 commits that reference this issue on May 7, 2017
    1cae86b
    0313a8d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions