# N-dim dict

**URL:** https://discourse.julialang.org/t/n-dim-dict/66186
**Category:** General Usage
**Tags:** question
**Created:** [August 11, 2021, 7:43am UTC](https://discourse.julialang.org/t/n-dim-dict/66186 "2021-08-11T07:43:25Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![Impressium](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/impressium/32/19575_2.png) [@Impressium](https://discourse.julialang.org/u/Impressium)
#### Post date: [August 11, 2021, 7:43am UTC](https://discourse.julialang.org/t/n-dim-dict/66186/1 "2021-08-11T07:43:25Z")

</div>

Hey all 🙂

I’m looking for something similar like a `Array{T,N}` but I want to index it with something hashable. I also want to do something like `dict[A("key"), :]` to get everything from the second dimension with key `A("key")` in the first dimension.

Thanks

---

<div class="post-metadata">

### Author: ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)
#### Post date: [August 11, 2021, 1:02pm UTC](https://discourse.julialang.org/t/n-dim-dict/66186/2 "2021-08-11T13:02:39Z")

</div>

Try NamedArrays.jl. It does what you describe.

---

<div class="post-metadata">

### Author: ![Impressium](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/impressium/32/19575_2.png) [@Impressium](https://discourse.julialang.org/u/Impressium)
#### Post date: [August 11, 2021, 1:53pm UTC](https://discourse.julialang.org/t/n-dim-dict/66186/3 "2021-08-11T13:53:29Z")

</div>

Looks good. Almost what I need. Do you know of any more general package where the “name” can also be a custom struct?

---

<div class="post-metadata">

### Author: ![sijo](https://avatars.discourse-cdn.com/v4/letter/s/da6949/32.png) [@sijo](https://discourse.julialang.org/u/sijo)
#### Post date: [August 11, 2021, 2:00pm UTC](https://discourse.julialang.org/t/n-dim-dict/66186/4 "2021-08-11T14:00:53Z")

</div>

I think AxisKeys.jl can do that and is quite fast and just generally awesome 🙂

---

<div class="post-metadata">

### Author: ![zgornel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zgornel/32/217487_2.png) [@zgornel](https://discourse.julialang.org/u/zgornel)
#### Post date: [August 11, 2021, 2:40pm UTC](https://discourse.julialang.org/t/n-dim-dict/66186/5 "2021-08-11T14:40:56Z")

</div>

Also `NDSparse` may help [API · JuliaDB.jl](https://juliadb.juliadata.org/latest/api/#IndexedTables.NDSparse-Tuple)
