У меня есть следующий отсортированный список питона, хотя несколько значений может произойти:питон: найти значение в пределах диапазона в массиве флоат
[0.0943200769115388, 0.17380131294164516, 0.4063245853719435,
0.45796523225774904, 0.5040225609708342, 0.5229351852840304,
0.6145136350368882, 0.6220712583558284, 0.7190096076050408,
0.8486436998476048, 0.8957381707345986, 0.9774325873910711,
0.9832076130275351, 0.985386554764682, 1.0]
Теперь, я хочу знать, индекс в массиве, где определенное значение может упасть :
Например, значение 0,25 будет падать в индекс 2
, так как оно находится между 0,173 и 0,40. Думаю, я могу пройти через список и сделать это в цикле for, но мне было интересно, есть ли лучший способ сделать это, что может быть более эффективным с точки зрения вычислений. Я создаю этот массив один раз, но вам нужно выполнить множество поисков.
Здесь я пойти: http://docs.scipy.org/doc/numpy/reference/generated/numpy.searchsorted.html –
** Является ли диапазон поплавок вы тестирование фиксированной или переменной **? Если он исправлен, вы можете квантовать каждое значение в диапазоне при его вставке. – smci
Если у вас даже есть статистическая информация о диапазоне запросов, которые вы ожидаете получить (например, + FLT_MAX ..- FLT_MAX), вы можете вывести их в некоторый диапазон. Или вы можете создать обратную структуру данных, которая отображает значение -> index, или bin -> index – smci