Python NumPy是否具有一致性功能?
是否有一个NumPy函数用于此: 我可以计算,我只是想知道是否有更好的方法 下面是我在没有给定函数的情况下如何计算它-Python NumPy是否具有一致性功能?,python,numpy,Python,Numpy,是否有一个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 下面的代码是没有循环的解决方案 u
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
下面的代码是没有循环的解决方案
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)
希望能有所帮助。请提供一些有关该函数的背景知识。这是一个空间一致性函数。wi是一个单独的值,wmean是所有值的平均值。A是对应于值的区域…@mauve上下文是什么?虽然我以前见过这样的函数,但我从未见过/听说过它被称为均匀性函数。这与大气科学有关吗?@mauve你已经有效地解决了你自己的问题。如果
z_vals
是一个1D数组,则用z_vales
替换value
,并删除python循环将给出一个矢量化的解决方案。我不知道你想要什么来度过这一关。@Ophion。。。并将复杂性从二次型降低到线性型(注意循环内平均值的计算)。