Skip to content
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

[BUG] MultiIndex.values cannot generate an array of tuples #14150

Closed
galipremsagar opened this issue Sep 21, 2023 · 0 comments
Closed

[BUG] MultiIndex.values cannot generate an array of tuples #14150

galipremsagar opened this issue Sep 21, 2023 · 0 comments
Assignees
Labels
bug Something isn't working Python Affects Python cuDF API.

Comments

@galipremsagar
Copy link
Contributor

Describe the bug
pd.MultiIndex.values generates a numpy array of tuples. However cudf.MultiIndex.values only returns a cupy array - however there is no support to store tuples in cupy arrays. Hence, at least when pandas-compatibility mode is turned on, we need to throw an error.

Steps/Code to reproduce bug

In [13]: import pandas as pd

In [15]: import numpy as np

In [16]: i = pd.MultiIndex.from_product(
    ...:         [np.arange(9, -1, -1), np.arange(9, -1, -1)], names=["one", "two"]
    ...:     )

In [17]: midx = cudf.from_pandas(i)

In [18]: midx
Out[18]: 
MultiIndex([(9, 9),
            (9, 8),
            (9, 7),
            (9, 6),
            (9, 5),
            (9, 4),
            (9, 3),
            (9, 2),
            (9, 1),
            (9, 0),
            (8, 9),
            (8, 8),
            (8, 7),
            (8, 6),
            (8, 5),
            (8, 4),
            (8, 3),
            (8, 2),
            (8, 1),
            (8, 0),
            (7, 9),
            (7, 8),
            (7, 7),
            (7, 6),
            (7, 5),
            (7, 4),
            (7, 3),
            (7, 2),
            (7, 1),
            (7, 0),
            (6, 9),
            (6, 8),
            (6, 7),
            (6, 6),
            (6, 5),
            (6, 4),
            (6, 3),
            (6, 2),
            (6, 1),
            (6, 0),
            (5, 9),
            (5, 8),
            (5, 7),
            (5, 6),
            (5, 5),
            (5, 4),
            (5, 3),
            (5, 2),
            (5, 1),
            (5, 0),
            (4, 9),
            (4, 8),
            (4, 7),
            (4, 6),
            (4, 5),
            (4, 4),
            (4, 3),
            (4, 2),
            (4, 1),
            (4, 0),
            (3, 9),
            (3, 8),
            (3, 7),
            (3, 6),
            (3, 5),
            (3, 4),
            (3, 3),
            (3, 2),
            (3, 1),
            (3, 0),
            (2, 9),
            (2, 8),
            (2, 7),
            (2, 6),
            (2, 5),
            (2, 4),
            (2, 3),
            (2, 2),
            (2, 1),
            (2, 0),
            (1, 9),
            (1, 8),
            (1, 7),
            (1, 6),
            (1, 5),
            (1, 4),
            (1, 3),
            (1, 2),
            (1, 1),
            (1, 0),
            (0, 9),
            (0, 8),
            (0, 7),
            (0, 6),
            (0, 5),
            (0, 4),
            (0, 3),
            (0, 2),
            (0, 1),
            (0, 0)],
           names=['one', 'two'])

In [19]: i
Out[19]: 
MultiIndex([(9, 9),
            (9, 8),
            (9, 7),
            (9, 6),
            (9, 5),
            (9, 4),
            (9, 3),
            (9, 2),
            (9, 1),
            (9, 0),
            (8, 9),
            (8, 8),
            (8, 7),
            (8, 6),
            (8, 5),
            (8, 4),
            (8, 3),
            (8, 2),
            (8, 1),
            (8, 0),
            (7, 9),
            (7, 8),
            (7, 7),
            (7, 6),
            (7, 5),
            (7, 4),
            (7, 3),
            (7, 2),
            (7, 1),
            (7, 0),
            (6, 9),
            (6, 8),
            (6, 7),
            (6, 6),
            (6, 5),
            (6, 4),
            (6, 3),
            (6, 2),
            (6, 1),
            (6, 0),
            (5, 9),
            (5, 8),
            (5, 7),
            (5, 6),
            (5, 5),
            (5, 4),
            (5, 3),
            (5, 2),
            (5, 1),
            (5, 0),
            (4, 9),
            (4, 8),
            (4, 7),
            (4, 6),
            (4, 5),
            (4, 4),
            (4, 3),
            (4, 2),
            (4, 1),
            (4, 0),
            (3, 9),
            (3, 8),
            (3, 7),
            (3, 6),
            (3, 5),
            (3, 4),
            (3, 3),
            (3, 2),
            (3, 1),
            (3, 0),
            (2, 9),
            (2, 8),
            (2, 7),
            (2, 6),
            (2, 5),
            (2, 4),
            (2, 3),
            (2, 2),
            (2, 1),
            (2, 0),
            (1, 9),
            (1, 8),
            (1, 7),
            (1, 6),
            (1, 5),
            (1, 4),
            (1, 3),
            (1, 2),
            (1, 1),
            (1, 0),
            (0, 9),
            (0, 8),
            (0, 7),
            (0, 6),
            (0, 5),
            (0, 4),
            (0, 3),
            (0, 2),
            (0, 1),
            (0, 0)],
           names=['one', 'two'])

In [20]: i.values
Out[20]: 
array([(9, 9), (9, 8), (9, 7), (9, 6), (9, 5), (9, 4), (9, 3), (9, 2),
       (9, 1), (9, 0), (8, 9), (8, 8), (8, 7), (8, 6), (8, 5), (8, 4),
       (8, 3), (8, 2), (8, 1), (8, 0), (7, 9), (7, 8), (7, 7), (7, 6),
       (7, 5), (7, 4), (7, 3), (7, 2), (7, 1), (7, 0), (6, 9), (6, 8),
       (6, 7), (6, 6), (6, 5), (6, 4), (6, 3), (6, 2), (6, 1), (6, 0),
       (5, 9), (5, 8), (5, 7), (5, 6), (5, 5), (5, 4), (5, 3), (5, 2),
       (5, 1), (5, 0), (4, 9), (4, 8), (4, 7), (4, 6), (4, 5), (4, 4),
       (4, 3), (4, 2), (4, 1), (4, 0), (3, 9), (3, 8), (3, 7), (3, 6),
       (3, 5), (3, 4), (3, 3), (3, 2), (3, 1), (3, 0), (2, 9), (2, 8),
       (2, 7), (2, 6), (2, 5), (2, 4), (2, 3), (2, 2), (2, 1), (2, 0),
       (1, 9), (1, 8), (1, 7), (1, 6), (1, 5), (1, 4), (1, 3), (1, 2),
       (1, 1), (1, 0), (0, 9), (0, 8), (0, 7), (0, 6), (0, 5), (0, 4),
       (0, 3), (0, 2), (0, 1), (0, 0)], dtype=object)

In [21]: midx.values
Out[21]: 
array([[9, 9],
       [9, 8],
       [9, 7],
       [9, 6],
       [9, 5],
       [9, 4],
       [9, 3],
       [9, 2],
       [9, 1],
       [9, 0],
       [8, 9],
       [8, 8],
       [8, 7],
       [8, 6],
       [8, 5],
       [8, 4],
       [8, 3],
       [8, 2],
       [8, 1],
       [8, 0],
       [7, 9],
       [7, 8],
       [7, 7],
       [7, 6],
       [7, 5],
       [7, 4],
       [7, 3],
       [7, 2],
       [7, 1],
       [7, 0],
       [6, 9],
       [6, 8],
       [6, 7],
       [6, 6],
       [6, 5],
       [6, 4],
       [6, 3],
       [6, 2],
       [6, 1],
       [6, 0],
       [5, 9],
       [5, 8],
       [5, 7],
       [5, 6],
       [5, 5],
       [5, 4],
       [5, 3],
       [5, 2],
       [5, 1],
       [5, 0],
       [4, 9],
       [4, 8],
       [4, 7],
       [4, 6],
       [4, 5],
       [4, 4],
       [4, 3],
       [4, 2],
       [4, 1],
       [4, 0],
       [3, 9],
       [3, 8],
       [3, 7],
       [3, 6],
       [3, 5],
       [3, 4],
       [3, 3],
       [3, 2],
       [3, 1],
       [3, 0],
       [2, 9],
       [2, 8],
       [2, 7],
       [2, 6],
       [2, 5],
       [2, 4],
       [2, 3],
       [2, 2],
       [2, 1],
       [2, 0],
       [1, 9],
       [1, 8],
       [1, 7],
       [1, 6],
       [1, 5],
       [1, 4],
       [1, 3],
       [1, 2],
       [1, 1],
       [1, 0],
       [0, 9],
       [0, 8],
       [0, 7],
       [0, 6],
       [0, 5],
       [0, 4],
       [0, 3],
       [0, 2],
       [0, 1],
       [0, 0]])

Expected behavior
Raise an error.

Environment overview (please complete the following information)

  • Environment location: [Bare-metal]
  • Method of cuDF install: [from source]
@galipremsagar galipremsagar added bug Something isn't working Python Affects Python cuDF API. labels Sep 21, 2023
@galipremsagar galipremsagar self-assigned this Sep 21, 2023
@github-project-automation github-project-automation bot moved this from In Progress to Done in cuDF/Dask/Numba/UCX Oct 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working Python Affects Python cuDF API.
Projects
Archived in project
Development

No branches or pull requests

1 participant