Я использую словарную структуру в python для хранения (row, col) из большого массива numpy. Длина объекта словаря составляет почти 100 000
Ключ является кортежем (строка, столбец). Вот некоторые примеры значений в этой структуре:
OrderedDict([((1783, 586), 0), ((1783, 587), 1), ((1783, 588), 2), ((1783, 589), 3), ((1783, 590), 4), ((1784, 584), 5), ((1784, 585), 6), ((1784, 586), 7), ((1784, 587), 8), ((1784, 588), 9), ((1784, 589), 10), ((1784, 590), 11), ((1784, 591), 12), ((1784, 592), 13), ((1784, 593), 14), ((1784, 594), 15), ((1784, 595), 16), ((1785, 583), 17), ((1785, 584), 18), ((1785, 585), 19), ((1785, 586), 20), ((1785, 587), 21), ((1785, 588), 22), ((1785, 589), 23), ((1785, 590), 24), ((1785, 591), 25), ((1785, 592), 26), ((1785, 593), 27), ((1785, 594), 28), ((1785, 595), 29), ((1785, 596), 30), ((1785, 597), 31),...
Для поиска с использованием ключа обработка выполняется вечно.
Я выполняю поиск, используя (строка, столбец):
if (1783,586) in keyed_var_pixels:
На основании этой записи , использование ключевого слова в для объекта dict должно использовать хеширование. Кажется, что для каждого поиска требуется около 0,02 секунды и всего 30 минут, если он работает для всего набора данных. Это кажется слишком длинным для хешированного поиска. Мне интересно, как я могу улучшить это время выполнения? Или любая альтернативная структура данных для хранения этих значений для быстрого поиска и проверки существования.
Заранее спасибо!