是否有NumPy功能:
我可以计算出来,我只是想知道是否有更好的方法。
以下是我在没有给定函数的情况下计算它的方法 -
len(z_vals)
代替Ai / A
,因为各个区域是均匀分布的。
ui_minus = 0
for value in z_vals:
ui_minus += abs(value - np.average(z_vals))/(len(z_vals)*np.average(z_vals))
ui = 1 - 0.5*ui_minus
答案 0 :(得分:1)
下面的代码是没有循环的解决方案
ui = 1 - 0.5*sum(abs(z_vals - np.average(z_vals)))/(len(z_vals)*np.average(z_vals))
如果您需要在代码中经常使用此计算,则可以使用方法lambda
轻松定义函数
uniformity = lambda x : 1 - 0.5*sum( abs(x - np.average(x)) )/(len(x)*np.average(x))
然后你可以简单地调用统一性,如下所示。
ui = uniformity(z_vals)
希望它有所帮助。