PooledArrays.jl icon indicating copy to clipboard operation
PooledArrays.jl copied to clipboard

A pooled representation for arrays with few unique elements

Results 18 PooledArrays.jl issues
Sort by recently updated
recently updated
newest added

We currently have the following design issue: ``` julia> vcat([1,2,3], PooledArray([1,2,3])) ERROR: MethodError: vcat(::Vector{Int64}, ::PooledVector{Int64, UInt32, Vector{UInt32}}) is ambiguous. julia> vcat(PooledArray([1,2,3]), [1,2,3]) ERROR: MethodError: vcat(::PooledVector{Int64, UInt32, Vector{UInt32}}, ::Vector{Int64}) is ambiguous....

This is WIP to show the changes so that pools can be shared between `PooledArray`s allowing and disallowing missing values. It seems we can have them without much complications. Please...

In `src/PooledArrays.jl` at lines 202-203, we find the following code ```julia @inline PooledArray(t::Type) = PooledArray(Array(t,0)) @inline PooledArray(t::Type, r::Type) = PooledArray(Array(t,0), r) ``` which does not work as there is no...

This fixes the following problem: ``` julia> x = PooledArray(["a", "b"]) 2-element PooledVector{String, UInt32, Vector{UInt32}}: "a" "b" julia> y = resize!(PooledArray(String[]), 2) 2-element PooledVector{String, UInt32, Vector{UInt32}}: #undef #undef julia> copyto!(x,...

I see why the `pure` keyword was added, but having `pure=false` contradicts Julia's behavior, which assumes mapped functions are pure. For instance: ``` julia> using SparseArrays julia> A = sparse([1,...

If length of pool is much smaller than the number of entries we can run the following (working code): ``` function median_fast(x::PooledVector) n = length(x) p = sortperm(x.pool) counts =...

A number of binary formats contain dictionary encoded data with the references as 0-indexed integers. PooledArrays currently can't be used to wrap these because, if I understand correctly, the references...

In the case where you have 2+ PooledArrays and you want them to share a single pool, it would be useful to have a constructor that's something like ```julia foo...

In the `Arrow.jl` package we added a method ```julia function DataAPI.levels(x::DictEncoded) rp = DataAPI.refpool(x) # may contain missing values Missing