从numpy数组计算峰度?

时间:2014-10-15 07:53:54

标签: arrays python-2.7 numpy arcpy

我正在尝试计算' kurtosis'以及来自numpy数组的其他统计数据。 正如我刚刚所做的那样,计算最小值,最大值,平均值和标准差很容易。

import arcpy
arr = arcpy.RasterToNumPyArray(input_Raster) 
x = arr
print 'Min =', x.min()
print 'Max =', x.max() 
print 'Mean =', x.mean()
print 'Standard Deviation =', x.std()

哪个输出:

Min = 1.87895
Max = 16.8343
Mean = 8.03462
Standard Deviation = 1.52192

但这种方法对Kurtosis不起作用! 我正在尝试

print 'Kurtosis =', x.kurtosis()

我得到:属性错误:' numpy.ndarray'对象没有属性' kurtosis'

我可以用什么最简单的代码来计算自己的峰度结果?谢谢。

1 个答案:

答案 0 :(得分:8)

Numpy仅限于相当基本的阵列操作,你需要联系受过更多教育的兄弟Scipy来获得more advanced stats functions

  

scipy.stats.kurtosis(a, axis=0, fisher=True, bias=True)

     

计算数据集的峰度(Fisher或Pearson)。

所以,from scipy.stats import kurtosis,然后是kurtosis(x)

通常,Numpy数组上的方法仅限于最基本的操作(maxmin等)。 Numpy方法(例如numpy.diff)稍微提升了一些功能,而更多功能来自Scipy(scipy.optimize.[whatever] scipy.signal.[whatever]scipy.stats.[whatever]