gpt4 book ai didi

python - 如何从np直方图计算熵

转载 作者:太空狗 更新时间:2023-10-30 01:57:28 26 4
gpt4 key购买 nike

<分区>

我有一个直方图示例:

mu1 = 10, sigma1 = 10
s1 = np.random.normal(mu1, sigma1, 100000)

并计算

hist1 = np.histogram(s1, bins=50, range=(-10,10), density=True)
for i in hist1[0]:
ent = -sum(i * log(abs(i)))
print (ent)

现在我想从给定的直方图数组中找到熵,但是由于 np.histogram 返回两个数组,我在计算熵时遇到了麻烦。我怎样才能调用 np.histogram 的第一个数组并计算熵?即使我上面的代码是正确的,我也会得到熵的数学域错误。 :(

**编辑:当 Mu = 0 时如何找到熵? log(0) 产生数学域错误?


所以我尝试编写的实际代码是:

mu1, sigma1 = 0, 1
mu2, sigma2 = 10, 1
s1 = np.random.normal(mu1, sigma1, 100000)
s2 = np.random.normal(mu2, sigma2, 100000)

hist1 = np.histogram(s1, bins=100, range=(-20,20), density=True)
data1 = hist1[0]
ent1 = -(data1*np.log(np.abs(data1))).sum()

hist2 = np.histogram(s2, bins=100, range=(-20,20), density=True)
data2 = hist2[0]
ent2 = -(data2*np.log(np.abs(data2))).sum()

到目前为止,第一个示例 ent1 会产生 nan,第二个 ent2 会产生数学域错误:(

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com