Python School
82.1K subscribers
2.43K photos
8 videos
583 links
Уроки по Python, которые упростят вам жизнь. Без идиотских туториалов.

Наши мемы для программистов: @conhum

Сотрудничество - @alivian

Канал сотрудничает с рекламным сервисом @Tgpodbor_official

РКН: clck.ru/3G6pBb
Download Telegram
Ускоряем код с помощью векторизации

Одним из приемов для ускорения работы циклов является векторизация вычислений, т. е. использование функций, которые поддерживают операции над векторами.

Вообще лучший способ ускорить любой цикл – это отказаться от него. В примере выше для работы с функцией my_func мы могли бы вызвать ее в цикле для каждого элемента списка, но гораздо проще использовать vectorize.

По сути, vectorize преобразует функцию таким образом, что она начинает принимать весь вектор целиком, а не отдельный его элемент. Надо помнить, что такой подход не всегда приводит к значительному ускорению.

#vectorize #numpy
Библиотека Numpy

Преимущество и зачем использовать разобрали в предыдущем посте. Теперь углубим свои знания, а позже расскажем про pandas и интеграции с SQL.
Библиотеку требуется установить:

 install numpy

Для создания массива можно использовать методы array или empty. А вместо знакомого range() присутствует более быстрый arange.

Но помните, что использовать данный метод с типом float нужно осторожно из-за ограничения точности чисел с плавающей запятой. Обычно его заменяют методом linspace, который принимает не шаг, а кол-во нужных элементов.

#numpy