-
Notifications
You must be signed in to change notification settings - Fork 19
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
dak.zip
support for nested dictionaries
#213
Comments
Ah good find, another path to handle for zip :) Thanks for sharing the workaround! |
You know, that worked accidentally. We should explore this more in Awkward itself to make sure that it isn't doing misleading things. Like, If it sees another dict, that might mean that it switches over to Yeah, as I thought: >>> array = ak.zip({
... "a": {"b": np.arange(10, dtype=np.int8), "c": np.arange(10, dtype=np.int16)},
... "d": {"e": np.arange(10, dtype=np.int32), "f": np.arange(10, dtype=np.float32)},
... })
>>> array.show(type=True)
type: {
a: {
b: var * int64,
c: var * int64
},
d: {
e: var * int64,
f: var * float64
}
}
{a: {b: [0, 1, 2, 3, 4, ..., 6, 7, 8, 9], c: [0, 1, ..., 9]},
d: {e: [0, 1, 2, 3, 4, ..., 6, 7, 8, 9], f: [0, 1, ..., 9]}} whereas >>> array2 = ak.zip({"b": np.arange(10, dtype=np.int8), "c": np.arange(10, dtype=np.int16)})
>>> array2.show(type=True)
type: 10 * {
b: int8,
c: int16
}
[{b: 0, c: 0},
{b: 1, c: 1},
{b: 2, c: 2},
{b: 3, c: 3},
{b: 4, c: 4},
{b: 5, c: 5},
{b: 6, c: 6},
{b: 7, c: 7},
{b: 8, c: 8},
{b: 9, c: 9}] You see all of the integer types turn into I'll raise this as an issue in Awkward, that |
ak.zip()
works ondict
s that havedict
s inside of them, which is convenient for being able to create structures on the fly. For example:This doesn't work for
dak.zip()
, however:I can get around this by nesting
dak.zip()
calls:but it would certainly be more convenient if the first case worked.
The text was updated successfully, but these errors were encountered: