Я припускаю, що у вас є процесор з 8 віртуальними ядрами (напевно, чотирьохядерний з гіпер-нарізкою)? Це означає, що один повністю завантажений процесорний потік / віртуальне ядро дорівнює 12,5% загального навантаження.
Інтерпретатор Python - це програма, яка за замовчуванням працює лише як один єдиний процес, тому не може скористатися більш ніж одним віртуальним ядром. Навіть якщо код, який ви запускаєте з ним, використовує багатопотоковість, він все одно використовуватиме лише один потік / віртуальне ядро CPU через GIL (глобальний замок інтерпретатора) .
Тільки якщо у вашій програмі Python використовується багатопроцесорний процес , який насправді запускає кілька екземплярів інтерпретатора Python і дозволяє їм виконувати завдання справді паралельно, ви можете скористатися кількома віртуальними ядрами / потоками процесора. (Як зазначив @SargeBorsch у своєму коментарі, існують також деякі просунуті способи досягти цього без багатопроцесорної обробки, але це зазвичай не те, що ви швидко пишете самі.)