-1
votes

quelqu'un peut-il expliquer cette sortie de code

J'ai essayé de comprendre ce code mais je ne pouvais pas. Voulez-vous m'aider?

    array([0.5, 0. , 0.5, 0. , 0. , 0.5, 0. , 0.5, 0. , 0.5])

2. pourquoi la sortie est-elle comme ça?

    a = np.arange(5)
    hist, bin_edges = np.histogram(a, density=True)
    hist


1 commentaires

Qu'est-ce que tu ne comprends pas? arange ou historgram ? Avez-vous lu les documents? Considéré à a et bin_edges ?


3 Réponses :


-1
votes

Veuillez consulter ce post . Astuce: lorsque vous appelez np.histogram , la valeur par défaut du bac est 10, c'est pourquoi votre sortie contient 10 éléments.


0 commentaires

0
votes

La valeur par défaut de l'argument bins de np.histogram est 10. Ainsi, l'histogramme compte les bins dans lesquels les éléments de votre tableau appartiennent. Dans ce cas, a = np.array([0, 1, 2, 3, 4]) . Si nous créons un histogramme avec 10 cases, nous divisons l'intervalle 0-4 (inclus) en 10 cases égales. Cela nous donne (notez que 11 points finaux nous donnent 10 bacs):

[1, 0, 1, 0, 0, 1, 0, 1, 0, 1]

Nous devons maintenant juste pour voir quels Casiers vos éléments dans le tableau d' a chute dans. Nous pouvons les compter comme suit:

np.linspace(0, 4, 11) = array([0. , 0.4, 0.8, 1.2, 1.6, 2. , 2.4, 2.8, 3.2, 3.6, 4. ])

Maintenant, ce n'est toujours pas exactement ce que la sortie est. L'argument density=True indique (à partir de la documentation): «Si True , le résultat est la valeur de la fonction de densité de probabilité à la case, normalisée de telle sorte que l' intégrale sur la plage est 1.»

Chaque bac (de hauteur .5 ) a une largeur de .4 donc 5 x .5 x .4 = 1 comme l'exige cet argument.


0 commentaires

0
votes

numpy.arange(5) génère un tableau numpy de 5 éléments régulièrement espacés: array ([0,1,2,3,4]). np.histogram(a, density=True) renvoie les bords de la np.histogram(a, density=True) et les valeurs d'un histogramme obtenu à partir de votre tableau a utilisant 10 cases (qui est la valeur par défaut). bin_edges donne les bords du bac, tandis que l'histogramme donne le nombre d'occurrences pour chaque bac. Étant donné que vous définissez density=True les occurrences sont normalisées (l'intégrale sur la plage est 1.).

Regardez ici pour plus d'informations.


0 commentaires