OneHotArrays.jl

Memory efficient one-hot array encodings
Author FluxML
Popularity
18 Stars
Updated Last
4 Months Ago
Started In
March 2022

OneHotArrays.jl

Documentation Tests

This package provides memory efficient one-hot array encodings. It was originally part of Flux.jl.

julia> using OneHotArrays

julia> m = onehotbatch([10, 20, 30, 10, 10], 10:10:40)
4×5 OneHotMatrix(::Vector{UInt32}) with eltype Bool:
 1      1  1
   1      
     1    
         

julia> dump(m)
OneHotMatrix{UInt32, 4, Vector{UInt32}}
  indices: Array{UInt32}((5,)) UInt32[0x00000001, 0x00000002, 0x00000003, 0x00000001, 0x00000001]

julia> @which rand(100, 4) * m
*(A::AbstractMatrix, B::Union{OneHotArray{var"#s14", L, 1, var"N+1", I}, Base.ReshapedArray{Bool, var"N+1", <:OneHotArray{var"#s14", L, <:Any, <:Any, I}}} where {var"#s14", var"N+1", I}) where L
     @ OneHotArrays ~/.julia/dev/OneHotArrays/src/linalg.jl:7