JuliaArrays / AxisArrays.jl

Performant arrays where each dimension can have a named axis with values
http://JuliaArrays.github.io/AxisArrays.jl/latest/
Other
200 stars 42 forks source link

map and map! #71

Closed GordStephen closed 7 years ago

GordStephen commented 7 years ago

Right now map returns a normal Array, discarding the axis data - this PR would change that to preserve axis information, and require that values only be mapped from multiple AxisArrays if they have identical axes. As discussed in #54, broadcasting with semantic axes is a bit complicated, but map seems less controversial?

IIRC back in 0.4 map actually preserved the axis data, I guess something in the AbstractArray implementation changed with 0.5? I'm assuming that explicit mapping functions are the best way to regain this behaviour, but if there's a lower-level interface that could be implemented to achieve the same end, that would probably be the more elegant solution.

Also, checking for matchingdims was using size previously, which caused issues when used with things like OffsetArrays - this addresses that as well.

timholy commented 7 years ago

This seems great, thanks for doing it!