1
def stat_function(x):
center = x[len(x)/2]
ecdf = ECDF(xx)
percentile = (1 - ecdf(center)) * 100
print percentile
return percentile
主:
print generic_filter(table,
function=stat_function,
size=window_size,
mode=mode,
extra_arguments=(-1,))
我得到的輸出:
[[84 76 76 76 76 76 76 76 76 60]
[52 48 48 48 48 48 48 48 48 39]
[52 48 48 48 48 48 48 48 48 39]
[52 48 48 48 48 48 48 48 48 39]
[52 48 48 48 48 48 48 48 48 39]
[52 48 48 48 48 48 48 48 48 39]
[52 48 48 48 48 48 48 48 48 39]
[52 48 48 48 48 48 48 48 48 39]
[52 48 48 48 48 48 48 48 48 39]
[24 15 15 15 15 15 15 15 15 0]]
一切都很好,但如果我打印的「百分'在我的函數返回之前,我看到我所有的15s實際上是16.0s,而我的39s是40.0s。函數generic_filter需要re轉動一個浮點數並返回「16.0」,但在構建的數組中,它被轉換爲一個int並變成「15」。事實上 print percentile, int(percentile)
將顯示 「16.0,15」。
如果有人可以幫助我瞭解爲什麼這個SciPy的的功能需要一個浮動,然後扔在一個int,爲什麼INT(16.0)給出了15,我在這裏。
PS:即使numpy.array(generif_filter(...), dtype=numpy.float)
,我得到的整數的錯誤的表。