# Array of tuples to tuple of arrays

**URL:** <https://discourse.julialang.org/t/array-of-tuples-to-tuple-of-arrays/16973>\
**Category:** New to Julia\
**Created:** [October 30, 2018, 3:01pm UTC](https://discourse.julialang.org/t/array-of-tuples-to-tuple-of-arrays/16973 "2018-10-30T15:01:32Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![piever](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/piever/32/1815_2.png) [@piever](https://discourse.julialang.org/u/piever)\
**Post date:** [October 30, 2018, 11:02pm UTC](https://discourse.julialang.org/t/array-of-tuples-to-tuple-of-arrays/16973/3 "2018-10-30T23:02:58Z")

</div>

Yes, StructArrays can handle conversion from Array of structs (either struct, or `NamedTuple` or `Tuple`) to a `NamedTuple` of `Arrays` (in terms of storage, but it still allows accessing the rows). For example:

```julia
julia> using StructArrays

julia> v = [(1, "a"), (2, "b")];

julia> s = StructArray(v)
2-element StructArray{Tuple{Int64,String},1,NamedTuple{(:x1, :x2),Tuple{Array{Int64,1},Array{String,1}}}}:
 (1, "a")
 (2, "b")

julia> s[1]
(1, "a")

julia> values(StructArrays.columns(s))
([1, 2], ["a", "b"])

```

Keeping things stored as a a `StructArray` is a flexible solution as you get both the tuple of vectors if you need, but at the same time can access the rows as tuples.

---

_[View the full topic](https://discourse.julialang.org/t/array-of-tuples-to-tuple-of-arrays/16973)._
