我试图破译由自由职业者完成的代码块,而我一直陷于这一部分。我无法对此代码进行过多的介绍,但是我可以说的是他在def run(self)内部创建了一个新变量。我们将其命名为“结果”。然后取一个np.cumsum(histogram)称为“ HistCumSum”并执行以下操作-> Result = HistCumSum / HistCumSum [-1]
我已经在Google上搜索了大约一个星期,并试图打印出数值/手动进行数学运算,这是没有道理的
HistCumSum = np.cumsum(Hist)
Result = HistCumSum / HistCumSum[-1]
我无法解释结果的用途
答案 0 :(得分:0)
HistCumSum[-1]
是数组HistCumSum
中的最终值。由于HistCumSum
是累积总和,我们可以将Result = HistCumSum / HistCumSum[-1]
视为 normalization 从累积频率到累积分布函数
看看Hist
,HistCumSum
和Result
的外观可能有助于清除问题:
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()