从numpy数组计算峰度

qacovj5a  于 2023-04-12  发布在  其他
关注(0)|答案(1)|浏览(133)

我试图从一个numpy数组中计算“峰度”以及其他统计数据。计算Min,Max,Mean和Standard Deviation就像我刚刚做的那样简单。

import arcpy

x = arcpy.RasterToNumPyArray(input_Raster)
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

但是这个方法对峰度不起作用!我已经试过了

print 'Kurtosis =', x.kurtosis()

我得到:
属性错误:“numpy.ndarray”对象没有属性“kurtosis”
什么是最简单的代码,我可以用它来合并到我自己的计算峰度结果?

lrl1mhuk

lrl1mhuk1#

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])的功能更多。

相关问题