Есть, вероятно, лучшие слова для описания этого вопроса, однако то, что я пытаюсь сделать, противоположно 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
...
Если я правильно понимаю ваш вопрос,
sum(d < threshold) / len(d)
должен это сделать.
Редактировать: я пропустил абсолютное значение в вопросе -
sum(np.abs(d) < threshold) / float(len(d))
sum(np.absolute(d) < 0.2) / float(len(d))
sum(d < given_value) / len(d)
? Если вы используетеpython2
вам придетсяpython2
один из операндов, чтобыfloat