从numpy数组计算峰度?

Stu*_*014 5 arrays numpy python-2.7 arcpy

我试图计算'kurtosis',以及来自numpy数组的其他统计数据.正如我刚才所做的那样,计算Min,Max,Mean和Standard Deviation很容易.

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()
Run Code Online (Sandbox Code Playgroud)

哪个输出:

Min = 1.87895
Max = 16.8343
Mean = 8.03462
Standard Deviation = 1.52192
Run Code Online (Sandbox Code Playgroud)

但这种方法不适用于Kurtosis!正如我试过的那样

print 'Kurtosis =', x.kurtosis()
Run Code Online (Sandbox Code Playgroud)

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

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

Nic*_*k T 8

Numpy仅限于相当基本的阵列操作,你需要联系更受教育的兄弟Scipy,以获得更高级的统计功能.

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

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

那么from scipy.stats import kurtosis,那么kurtosis(x).

一般而言,上numpy的阵列的方法局限于只是最基本的操作(max,min等).Numpy方法(例如numpy.diff)中的功能稍微多一些,而Scipy(,)的功能更多scipy.optimize.[whatever] scipy.signal.[whatever]scipy.stats.[whatever]