0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

numpy > array > median > return 0.0 > 偶数個の場合は中央値候補二つの平均を返すことを教えていただきました

Last updated at Posted at 2017-04-14

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
0
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?