np.percentile возвращает медиану, отличную от np.median, когда присутствует inf - PullRequest
0 голосов
/ 27 декабря 2018

Когда значения inf присутствуют в массиве, при определенных условиях np.percentile может возвращать NaN в качестве медианы, тогда как np.median может возвращать конечное значение.

>>> import numpy as np
>>> np.percentile([np.inf, 5, 4], [10, 20, 30, 40, 50, 60, 70, 80, 90])
/Users/tom/miniconda3/envs/alldev/lib/python3.7/site-packages/numpy-1.16.0.dev0+45718fd-py3.7-macosx-10.7-x86_64.egg/numpy/lib/function_base.py:3947: RuntimeWarning: invalid value encountered in multiply
  x2 = take(ap, indices_above, axis=axis) * weights_above
array([4.2, 4.4, 4.6, 4.8, nan, inf, inf, inf, inf])
>>> np.median([np.inf, 5, 4])
5.0

В этом случае np.Медиана может правильно вернуть 5.0 в качестве медианного значения, тогда как np.percentile возвращает NaN для 50-го процентиля.

...