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
3 Réponses :
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.
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.
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.
Qu'est-ce que tu ne comprends pas?
arange
ouhistorgram
? Avez-vous lu les documents? Considéré àa
etbin_edges
?