Skip to content

Commit

Permalink
Merge pull request #68 from PoisotLab/tp/fix/entropize
Browse files Browse the repository at this point in the history
fix: entropize works with NaN values
  • Loading branch information
tpoisot authored Sep 17, 2024
2 parents b95de69 + 607b60a commit 9b6c901
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions src/entropize.jl
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,18 @@ so that it is close to 1 for values close to the median, and close to 0 for
values close to the extreme of the distribution.
"""
function entropize!(U::Matrix{RT}, A::Matrix{T}) where {RT <: AbstractFloat, T <: Number}
for i in eachindex(A)
p_high = mean(A .< A[i])
p_low = mean(A .>= A[i])
for i in findall(!isnan, A)
p_high = mean(skipmissing(A .< A[i]))
p_low = mean(skipmissing(A .>= A[i]))
e_high = p_high .* log2(p_high)
e_low = p_low .* log2(p_low)
U[i] = -e_high .- e_low
end
U[findall(isnan, U)] .= zero(eltype(U))
m = maximum(U)
for i in eachindex(U)
U[i] /= m
end
U[i] /= m
end
return U
end

Expand Down

0 comments on commit 9b6c901

Please sign in to comment.