Ускоряем код с помощью векторизации
Одним из приемов для ускорения работы циклов является векторизация вычислений, т. е. использование функций, которые поддерживают операции над векторами.
Вообще лучший способ ускорить любой цикл – это отказаться от него. В примере выше для работы с функцией
По сути,
#vectorize #numpy
Одним из приемов для ускорения работы циклов является векторизация вычислений, т. е. использование функций, которые поддерживают операции над векторами.
Вообще лучший способ ускорить любой цикл – это отказаться от него. В примере выше для работы с функцией
my_func
мы могли бы вызвать ее в цикле для каждого элемента списка, но гораздо проще использовать vectorize
.По сути,
vectorize
преобразует функцию таким образом, что она начинает принимать весь вектор целиком, а не отдельный его элемент. Надо помнить, что такой подход не всегда приводит к значительному ускорению.#vectorize #numpy
Библиотека Numpy. Объединение массивов
В данных нужно не только изменять форму, но и объединять с другими данными. Numpy позволяет при помощи различных методов очень удобно объединять массивы. К примеру, по осям.
Для объединения используется методы:
hstack - объединяет массивы по первым осям
vstack - объединяет массивы по последним осям
Есть абсолютно такие же методы (привели другое более понятное описание, но методы идентичны согласно официальной документации):
column_stack - объединяет столбцы в строки
row_stack - объединяет строки в столбцы
Если вам не совсем понятно, то посмотрите на пример кода и протестируйте методы сами.
#numpy
В данных нужно не только изменять форму, но и объединять с другими данными. Numpy позволяет при помощи различных методов очень удобно объединять массивы. К примеру, по осям.
Для объединения используется методы:
hstack - объединяет массивы по первым осям
vstack - объединяет массивы по последним осям
Есть абсолютно такие же методы (привели другое более понятное описание, но методы идентичны согласно официальной документации):
column_stack - объединяет столбцы в строки
row_stack - объединяет строки в столбцы
Если вам не совсем понятно, то посмотрите на пример кода и протестируйте методы сами.
#numpy
Библиотека Numpy. Манипуляции с формой
Как мы уже говорили у массива можно посмотреть его форму через атрибут shape. Но его можно изменить, вместе с этим изменится и форма массива. Как это работает?
Сначала массив будет приведен к одномерному, а после изменится так, как мы его зададим. Мы можем сделать массив одномерным через метод revel(). Аналогом изменения атрибута служит метод reshape()
Еще один метод для манипуляции с формой - transpose(). Он берет столбы и превращает в строки.
#numpy
Как мы уже говорили у массива можно посмотреть его форму через атрибут shape. Но его можно изменить, вместе с этим изменится и форма массива. Как это работает?
Сначала массив будет приведен к одномерному, а после изменится так, как мы его зададим. Мы можем сделать массив одномерным через метод revel(). Аналогом изменения атрибута служит метод reshape()
Еще один метод для манипуляции с формой - transpose(). Он берет столбы и превращает в строки.
#numpy