2014-10-15 18 views
5

Próbuję obliczyć "kurtozę", a także inne statystyki z tablicy numpy. Obliczanie minimalnej, maksymalnej, średniej i standardowej odchyłki jest łatwe, tak jak właśnie zrobiłem.Obliczanie kurtozy z tablicy 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() 

które wyjścia:

Min = 1.87895 
Max = 16.8343 
Mean = 8.03462 
Standard Deviation = 1.52192 

Ale ta metoda nie działa dla kurtoza! Jak Próbowałem

print 'Kurtosis =', x.kurtosis() 

I otrzymujemy: AttributeError: „numpy.ndarray” obiekt ma bez atrybutu „kurtozę”

Jaki byłby najprostszy kod może użyć, aby włączyć do mojego posiadać, aby obliczyć wynik kurtozy? Dzięki.

Odpowiedz

5

Numpy jest ograniczony do dość podstawowych operacji na tablicach, musisz skontaktować się ze lepiej wykształconym bratem, Scipy, aby uzyskać more advanced stats functions.

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

Computes the kurtosis (Fisher or Pearson) of a dataset.

Więc from scipy.stats import kurtosis, następnie kurtosis(x).

Ogólnie rzecz biorąc, metody na tablicach Numpy są ograniczone tylko do najbardziej podstawowych operacji (max, min itd.). Nieco bardziej funkcjonalność eked z metod NumPy (np numpy.diff) i jeszcze więcej z scipy (scipy.optimize.[whatever]scipy.signal.[whatever], scipy.stats.[whatever])

+0

Ok tak swoich wyjść zmodyfikowanych KOD: importowa arcpy scipy z scipy.stats import kurtoza input_Raster = arcpy.Raster (nazwa pliku) arr = arcpy.RasterToNumPyArray (input_Raster) x = arr scipy.stats.kurtosis (x, oś = 0, fisher = prawda, odchylenie = prawda) print 'Kurtosis =', kurtosis (x) – Student2014

+0

Kurtosis = [-0,09035063 -0,07390738 -0,14783502 ..., 4,14966822 3,81233072 2.9377284] – Student2014

+0

Nie jestem pewien jeśli to prawda? Wielkie dzięki za kierunek - myślę, że muszę przeczytać więcej o kurtozie! – Student2014