median()を使ってarrayの中央値を取ろうとしていた。
得た値は0.0だった (arrayには無い要素)。
小さなコードで試してみた。
http://ideone.com/jmkZ6h
import numpy as np
aary = np.array([-3, 1, 3])
print(np.median(aary))
bary = np.array([-3, -1, 1, 3])
print(np.median(bary))
run
1.0
0.0
medianの対象arrayの要素数が偶数の場合に0.0となる。
奇数個でないから「中央値」が求まらず、エラー値として0.0を返しているのかもしれない。
(追記 2017/04/21)
@carnage さんのコメントにて中央値候補二つの平均を返していることを教えていただきました。
情報感謝です。
偶数個のarrayの中央値を取ろうとしたのが、そもそもの間違いだろう。
偶数個のarrayに対して、「だいたい中央値」を取りたい方法としては、最小か最大の要素を削除して奇数個の要素でmedian()を取る方法を思い付く。
import numpy as np
aary = np.array([-3, 1, 3])
print(np.median(aary))
bary = np.array([-3, -1, 1, 3])
print(np.median(bary))
cary = np.delete(bary, max(bary))
print(cary)
print(np.median(cary))
run
1.0
0.0
[-3 -1 1]
-1.0