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

no methods implemented for integer arrays

Open mvhulten opened this issue 7 years ago • 2 comments

Maybe this is a specific case of #17, but I don't understand everything in that issue. All users (even myself!) will understand this issue:

julia> mean([1 2 3])
2.0

julia> NaNMath.mean([1 2 3])
ERROR: MethodError: no method matching mean(::Array{Int64,2})
You may have intended to import Base.mean
Closest candidates are:
  mean(::AbstractArray{T<:AbstractFloat,N} where N) where T<:AbstractFloat at /home/mhu027/.julia/v0.6/NaNMath/src/NaNMath.jl:163

julia> NaNMath.mean([1 2 π])
2.047197551196598

It would be a useful feature if the NaNMath routines will accept more types like integer.

I am using Julia 0.6.2 and NaNMath 0.3.0.

mvhulten avatar Feb 02 '18 15:02 mvhulten

Since NaN is defined as a float-point number in IEEE 754, I guess NaNMath deals with floats as default. I use something like nanmean(x) = any(isnan, x) ? NaNMath.mean(x) : mean(x) as circumvention.

carmagnole avatar Jun 01 '18 08:06 carmagnole

Also in casual use cases accepting Array of Any would also help.

xgdgsc avatar Aug 28 '20 04:08 xgdgsc