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'
什么是最简单的代码,我可以用它来计算自己的峰度结果?谢谢.
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]