Хочу поделиться тем, что сам юзаю, когда код начинает тормозить. Первое — проверь профилировщик (например, cProfile). Часто проблема не в питоне как таковом, а в том, как написан код. Если видишь, что основное время уходит на вызовы функций в цикле, есть смысл вынести их наружу или оптимизировать алгоритм.
Второе — чистый питон против C-расширений. numpy, pandas, cython — классика ускорения. Иногда достаточно переписать горячие участки на Cython или хотя бы использовать numpy вместо циклов по спискам.
Третье — параллелизм и асинхронность. Если задача позволяет — multiprocessing или asyncio вполне могут дать заметный прирост, особенно для IO-зависимого кода.
Четвертое — разные реализации Python. PyPy иногда творит чудеса на отдельные виды задач, но не со всем совместим.
Еще один лайфхак — кеширование и мемоизация: functools.lru_cache сильно помогает, если данные переиспользуются.
У меня были случаи, когда комбинация из простых оптимизаций и профилирования давала 3-5х в быстродействии без переписывания всего проекта. Кто что еще юзал для прибавки скорости?