Учитывая значение, найти процентиль% с Numpy

1

Есть, вероятно, лучшие слова для описания этого вопроса, однако то, что я пытаюсь сделать, противоположно np.percentile(). У меня есть список n чисел, и я хочу посмотреть, какой процентный размер их меньше заданного значения. Прямо сейчас, как я получаю это значение, постоянно пробую разные десятичные числа. Я хочу, чтобы Numpy сказал мне следующее:

При заданном пороге = 0,20 (вход) около 99,847781% (выход) элементов в списке d ниже этого процентиля.

То, что я делаю сейчас, чтобы получить этот номер, довольно отрывочно:

>>> np.percentile(np.absolute(d), 99.847781)
0.19999962082827874

>>> np.percentile(np.absolute(d), 99.8477816)
0.19999989822334402

>>> np.percentile(np.absolute(d), 99.8477817)
0.19999994445584851

>>> np.percentile(np.absolute(d), 99.8477818)
0.19999999068835939
...
  • 1
    Вы ищете sum(d < given_value) / len(d) ? Если вы используете python2 вам придется python2 один из операндов, чтобы float
  • 1
    Вот этот? docs.scipy.org/doc/scipy/reference/generated/...
Теги:
numpy

1 ответ

2
Лучший ответ

Если я правильно понимаю ваш вопрос,

sum(d < threshold) / len(d)

должен это сделать.

Редактировать: я пропустил абсолютное значение в вопросе -

sum(np.abs(d) < threshold) / float(len(d))
  • 0
    Отредактировал ваш код, чтобы он стал функционалом Python, но это была правильная идея! Я думаю, я забыл основы! Благодарю.
  • 1
    @cookied, хотя ваше редактирование не эквивалентно тому, что опубликовано здесь. Если вы хотели получить абсолютное значение, сделайте sum(np.absolute(d) < 0.2) / float(len(d))
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню