当Cdf表示从cv2.calcHist构建的累积分布函数时,Cdf/Cdf[1]做了什么?

2024-05-20 08:46:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图破译一个由自由职业者完成的代码块,我一直被困在这一部分。关于这段代码,我不能说太多细节,但我可以说,他正在def run(self)内部创建一个新变量。我们把它命名为“结果”。然后去看医生np.cumsum公司(直方图)我们称之为“HistCumSum”并执行以下操作-->;Result=HistCumSum/HistCumSum[-1]

我在google上搜索了大约一个星期,试图打印出数值/手工计算,但毫无意义

 HistCumSum = np.cumsum(Hist)

 Result = HistCumSum / HistCumSum[-1]

我无法解释结果的用途


Tags: run代码gtselfdefnp公司result
1条回答
网友
1楼 · 发布于 2024-05-20 08:46:07

HistCumSum[-1]是数组HistCumSum中的最终值。因为HistCumSum是一个累积和,我们可以把Result = HistCumSum / HistCumSum[-1]看作是从累积频率到累积分布函数的归一化。你知道吗

看看HistHistCumSumResult的样子可能有助于澄清问题:

import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt

x = np.linspace(-2, 2, num=100)
# Evaluate pdf in lieu of actual data
Hist = norm.pdf(x)

# Compute cumulative sum
HistCumSum = np.cumsum(Hist)
# Normalise cumulative sum to produce cdf
Result = HistCumSum / HistCumSum[-1]

fig, ax = plt.subplots(1, 3, figsize=[7, 3])
ax[0].plot(x, Hist)
ax[1].plot(x, HistCumSum)
ax[2].plot(x, Result)
ax[0].set_title('Hist')
ax[1].set_title('HistCumSum')
ax[2].set_title('Results (CDF)')
fig.tight_layout()

enter image description here

相关问题 更多 >