Я пытаюсь перебрать огромный (77M записей, размер 5Gb) списки в python (используя Numba для скорости). Но у меня возникают некоторые проблемы.
То, что я пробовал:
Numba не принимает список списков, , как упомянуто здесь и в документах .
В решении goto используется массив Numpy, но он должен быть квадратным (т.е. все списки в моем списке имеют быть такой же длины, которой они не являются (см. ниже)). Добавление завершающих нулей, чтобы исправить это, занимает слишком много времени, потому что требуется еще одна полная итерация в python, измерение длины каждого списка и добавление соответствующего количества нулей.
Я пробовал используя (более новый) TypedList , но создание этого означает итерацию по тому же набору данных и вызов TypedListInstance.append для каждой из моих записей 77M. Снова слишком медленно. Использование TypedListInstance.extend - хороший улов 22: он реализован в numba под капотом и, следовательно, не принимает список списков.
Все идеи очень приветствуются, я был борется с этой проблемой уже пару дней.
Спасибо за чтение.
JR
Добавление в 2: массив Numpy должен быть квадратным, потому что в противном случае он просто создает массив python собственных объектов списка