我正在尝试计算' 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'
我可以用什么最简单的代码来计算自己的峰度结果?谢谢。
答案 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数组上的方法仅限于最基本的操作(max
,min
等)。 Numpy方法(例如numpy.diff
)稍微提升了一些功能,而更多功能来自Scipy(scipy.optimize.[whatever]
scipy.signal.[whatever]
,scipy.stats.[whatever]
)