2
votes

Obtenez le mappage de chaque élément d'entrée vers la corbeille de l'histogramme dans Julia

[n, mapx] = histc (x, bin_edged) de Matlab renvoie les décomptes de x dans chaque casier sous la forme n et renvoie une carte, qui est de la même longueur de x qui est l'index bin dans lequel chaque élément de x a été placé.

Je peux faire la même chose dans Julia comme suit:

Using StatsBase
x = rand(1000)
bin_e = 0:0.1:1
h = fit(Histogram, x, bin_e)
yx = map((z) -> findnext(z.<=h.edges[1],1),x) .- 1

Est-ce la "bonne façon" de procéder? Cela semble un peu brouillon.


0 commentaires

3 Réponses :



1
votes

Après avoir parcouru le code de Histogram.jl, j'ai trouvé qu'ils incluaient déjà une fonction binindex . Cette solution est donc probablement la meilleure:

x = 0:0.001:10
h1 = fit(Histogram,x,0:10,closed=left)
xmap1 = StatsBase.binindex.(Ref(h1), x)
h2 = fit(Histogram,x,0:10,closed=right)
xmap2 = StatsBase.binindex.(Ref(h2), x)


0 commentaires

1
votes

Je suis tombé sur cette question lorsque j'essayais de déterminer le nombre d'occurrences de chaque valeur que j'avais dans une liste de valeurs. Si chaque valeur est dans son propre bac (comme pour les données catégorielles, ou les données entières avec un petit nombre de valeurs uniques), c'est ce que l'on tracerait dans un histogramme.

Si c'est ce que vous voulez, alors countmap () dans le package StatBase est exactement ce dont vous avez besoin.


0 commentaires