我试图从一个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”
什么是最简单的代码,我可以用它来合并到我自己的计算峰度结果?
1条答案
按热度按时间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数组上的方法仅限于最基本的操作(
max
,min
等)。Numpy方法(例如numpy.diff
)的功能略多,Scipy(scipy.optimize.[whatever]
scipy.signal.[whatever]
,scipy.stats.[whatever]
)的功能更多。