VisPy
В этом примере мы создаем данные для точечного графика с
Результат работы кода - отображение окна с интерактивным точечным графиком.
🔗 Python tricks
VisPy
— это высокопроизводительная интерактивная библиотека визуализации данных 2D/3D. VisPy
использует вычислительную мощность современных графических процессоров через библиотеку OpenGL
для отображения очень больших наборов данных. VisPy
способна создавать высококачественные интерактивные научные графики с миллионами точек.В этом примере мы создаем данные для точечного графика с
N
точками и цветами. Затем мы создаем канвас и добавляем на него точечный график с помощью класса Markers
. Наконец, мы запускаем приложение с помощью app.run()
.Результат работы кода - отображение окна с интерактивным точечным графиком.
🔗 Python tricks
Объясните, что такое monkey patching и приведите пример
Monkey patching — это техника изменения поведения кода во время выполнения путем динамической замены или добавления методов или атрибутов в существующем объекте. Эта техника может быть полезна в том случае, когда изменения не могут быть внесены в существующий код, и требует минимальных изменений в существующем коде.
🔗 Python tricks
Monkey patching — это техника изменения поведения кода во время выполнения путем динамической замены или добавления методов или атрибутов в существующем объекте. Эта техника может быть полезна в том случае, когда изменения не могут быть внесены в существующий код, и требует минимальных изменений в существующем коде.
🔗 Python tricks
dict.items
Метод items() возвращает объект представления, который отображает список пар кортежей словаря (ключ, значение). Если список обновляется в любое время, изменения отражаются на самом объекте представления, как показано в приведенном выше примере.
🔗 Python tricks
Метод items() возвращает объект представления, который отображает список пар кортежей словаря (ключ, значение). Если список обновляется в любое время, изменения отражаются на самом объекте представления, как показано в приведенном выше примере.
🔗 Python tricks
Dask
В этом примере мы создаем массив
Результат работы кода - массив
🔗 Python tricks
Dask
— это гибкая библиотека для параллельных вычислений. Dask
состоит из двух частей: динамического планирования задач, оптимизированного для вычислений, и коллекций "больших данных", таких как параллельные массивы, фреймы данных и списки, которые расширяют общие интерфейсы, такие как NumPy
, Pandas
или итераторы Python, до сред больше памяти или распределенных сред.В этом примере мы создаем массив
Dask
x
размером 10000x10000 с чанками размером 1000x1000. Затем мы выполняем несколько операций над массивом x
, включая транспонирование, срез и вычисление среднего значения. Наконец, мы вызываем метод compute()
для вычисления результата.Результат работы кода - массив
NumPy
со средними значениями по строкам для каждой второй строки в срезе y[::2, 5000:]
.🔗 Python tricks
Catboost
В этом примере мы импортируем
Результат работы кода будет зависеть от входных данных. В этом примере используются случайные данные для обучения и тестирования. В реальных ситуациях данные будут отличаться.
🔗 Python tricks
CatBoost
это быстрая, масштабируемая и высокопроизводительная библиотека градиентного бустинга на деревьях решений, используемая для ранжирования, классификации, регрессии и других задач машинного обучения для Python, R, Java, C++. Поддерживает вычисления на CPU и GPU.В этом примере мы импортируем
CatBoostClassifier
из catboost
и создаем экземпляр классификатора с определенными параметрами. Затем мы обучаем модель на тренировочных данных и метках с помощью метода fit
. После обучения мы можем использовать методы predict
и predict_proba
для получения предсказаний классов и вероятностей соответственно.Результат работы кода будет зависеть от входных данных. В этом примере используются случайные данные для обучения и тестирования. В реальных ситуациях данные будут отличаться.
🔗 Python tricks
LIME
LIME (Local Interpretable Model-agnostic Explanations) - это проект, который объясняет, что делают модели машинного обучения.
В этом примере мы загружаем данные о качестве вина и разделяем их на тренировочные и тестовые. Затем мы обучаем модель
🔗 Python tricks
LIME (Local Interpretable Model-agnostic Explanations) - это проект, который объясняет, что делают модели машинного обучения.
lime
поддерживает объяснения для табличных моделей, текстовых классификаторов и классификаторов изображений.В этом примере мы загружаем данные о качестве вина и разделяем их на тренировочные и тестовые. Затем мы обучаем модель
RandomForestClassifier
на тренировочных данных. Далее мы создаем объект LimeTabularExplainer
из библиотеки lime
, который используется для интерпретации предсказаний модели. Мы выбираем индекс объекта из тестовых данных и используем метод explain_instance
для получения объяснения предсказания модели для этого объекта.🔗 Python tricks
H2Oai
В этом примере мы импортируем
Затем мы создаем экземпляр
🔗 Python tricks
H2O.ai
предоставляет модуль Python, который дает доступ к H2O JVM
, а также к его расширениям, объектам, алгоритмам машинного обучения и возможностям поддержки моделирования, таким как базовое преобразование данных и генерация признаков. H2O JVM
предоставляет веб-сервер, чтобы все общение происходило через сокет (указанный IP-адресом и портом) с помощью серии вызовов REST
.В этом примере мы импортируем
H2OGradientBoostingEstimator
из библиотеки h2o
и инициализируем H2O
с помощью init
. Затем загружаем данные и разделяем их на тренировочные и тестовые. Далее мы определяем признаки и целевую переменную для обучения модели. Затем мы создаем экземпляр
H2OGradientBoostingEstimator
и обучаем его на тренировочных данных с помощью метода train
. После обучения мы можем использовать метод model_performance
для оценки качества модели на тестовых данных.🔗 Python tricks
Объясните, почему такое возможно
Это возможно из-за того, что Python имеет функцию под названием «name mangling», которая изменяет имена атрибутов класса или методов путем добавления двойного подчеркивания «__» в начале их имен. Это сделано для того, чтобы предотвратить случайное переименование атрибутов в подклассах, которые будут унаследованы суперклассом.
🔗 Python tricks
Это возможно из-за того, что Python имеет функцию под названием «name mangling», которая изменяет имена атрибутов класса или методов путем добавления двойного подчеркивания «__» в начале их имен. Это сделано для того, чтобы предотвратить случайное переименование атрибутов в подклассах, которые будут унаследованы суперклассом.
🔗 Python tricks
SHAP
SHAP (SHapley Additive exPlanations) — это игровой подход к объяснению вывода любой модели машинного обучения. Он соединяет оптимальное распределение кредитов с локальными объяснениями, используя классические значения Шэпли из теории игр и связанные с ними расширения.
В этом примере мы загружаем модель бостон и разделяем ее на тренировочные и тестовые. Затем мы обучаем модель градиентного бустинга
🔗 Python tricks
SHAP (SHapley Additive exPlanations) — это игровой подход к объяснению вывода любой модели машинного обучения. Он соединяет оптимальное распределение кредитов с локальными объяснениями, используя классические значения Шэпли из теории игр и связанные с ними расширения.
В этом примере мы загружаем модель бостон и разделяем ее на тренировочные и тестовые. Затем мы обучаем модель градиентного бустинга
xgboost
на тренировочных данных. Далее мы создаем объект Explainer
из библиотеки shap
, который используется для интерпретации предсказаний модели. Вызываем метод __call__
у объекта explainer
с тестовыми данными в качестве аргумента для получения значений SHAP
для этих данных.🔗 Python tricks
Что такое магические методы dunder
Магические методы, также известные как «dunder» (double underscore) методы в Python, это специальные методы, которые начинаются и заканчиваются двойным подчеркиванием. Они позволяют определить, как объекты этого класса будут вести себя в различных контекстах, например, при использовании операторов Python, таких как +, -, *, / и т.д., при вызове функций и методов, при сериализации и многое другое.
🔗 Python tricks
Магические методы, также известные как «dunder» (double underscore) методы в Python, это специальные методы, которые начинаются и заканчиваются двойным подчеркиванием. Они позволяют определить, как объекты этого класса будут вести себя в различных контекстах, например, при использовании операторов Python, таких как +, -, *, / и т.д., при вызове функций и методов, при сериализации и многое другое.
🔗 Python tricks
Перечисление
Функция enumerate() добавляет счетчик к итерируемому объекту и возвращает его в виде объекта перечисления.
Этот перечисляемый объект затем может быть использован непосредственно для циклов или преобразован в список кортежей с помощью функции list().
🔗 Python tricks
Функция enumerate() добавляет счетчик к итерируемому объекту и возвращает его в виде объекта перечисления.
Этот перечисляемый объект затем может быть использован непосредственно для циклов или преобразован в список кортежей с помощью функции list().
🔗 Python tricks
Forwarded from CyberYozh
Обзор Bespalephone rugged 0.4
Евгений Ивченков
🌐 Смотреть обзор [19:09]
К нам в руки попала актуальная модель BespalePhone. Это пятая версия телефона и четвертая версия прошивки от команды Bespale.
Все, что вам нужно знать о телефоне, можно выразить в одном предложении: «Защита от досмотра, влаги и пыли». Однако такого набора возможностей прошивки вы не встретите в One+ или Pixel.
📦 Вторая хорошая новость: вы можете стать обладателем такого смартфона бесплатно.
С 13 по 23 мая пройдет розыгрыш BespalePhone (как в обзоре) и нескольких дополнительных призов. Все, что вам нужно будет сделать, — быть подписанным на наш канал и на канал BespalePhone. Подробности завтра😉
Евгений Ивченков
К нам в руки попала актуальная модель BespalePhone. Это пятая версия телефона и четвертая версия прошивки от команды Bespale.
Все, что вам нужно знать о телефоне, можно выразить в одном предложении: «Защита от досмотра, влаги и пыли». Однако такого набора возможностей прошивки вы не встретите в One+ или Pixel.
С 13 по 23 мая пройдет розыгрыш BespalePhone (как в обзоре) и нескольких дополнительных призов. Все, что вам нужно будет сделать, — быть подписанным на наш канал и на канал BespalePhone. Подробности завтра
Please open Telegram to view this post
VIEW IN TELEGRAM
Как начать отладку при утечке памяти в рабочем приложении
Для отладки утечек памяти в Python можно использовать инструменты, такие как Memory Profiler или objgraph.
Запустите вашу программу с помощью команды python -m memory_profiler my_script.py. Будет выведен подробный отчет о том, сколько памяти используется в каждой строке программы, а также общее использование памяти и любые утечки.
Этот код создаст изображение my_list.png, на котором будут показаны все объекты, на которые ссылается my_list, а также все объекты, которые ссылается на них. Это может помочь вам понять, какие объекты держат ссылки на ваши объекты и могут вызывать утечки памяти.
🔗 Python tricks
Для отладки утечек памяти в Python можно использовать инструменты, такие как Memory Profiler или objgraph.
Запустите вашу программу с помощью команды python -m memory_profiler my_script.py. Будет выведен подробный отчет о том, сколько памяти используется в каждой строке программы, а также общее использование памяти и любые утечки.
Этот код создаст изображение my_list.png, на котором будут показаны все объекты, на которые ссылается my_list, а также все объекты, которые ссылается на них. Это может помочь вам понять, какие объекты держат ссылки на ваши объекты и могут вызывать утечки памяти.
🔗 Python tricks
В каких ситуациях возникает исключение NotImplementedError
Исключение NotImplementedError возникает, когда метод или функция должны быть реализованы в подклассе, но не были. Это может произойти, когда родительский класс определяет метод, но не реализует его сам, а оставляет это для подклассов. В этом случае, если подкласс не реализует метод, он будет вызывать исключение NotImplementedError. Это может быть полезно для отладки, чтобы убедиться, что все необходимые методы реализованы в подклассах. Это также может возникнуть в других ситуациях, например, если вы пытаетесь использовать неопределенную функцию или метод.
🔗 Python tricks
Исключение NotImplementedError возникает, когда метод или функция должны быть реализованы в подклассе, но не были. Это может произойти, когда родительский класс определяет метод, но не реализует его сам, а оставляет это для подклассов. В этом случае, если подкласс не реализует метод, он будет вызывать исключение NotImplementedError. Это может быть полезно для отладки, чтобы убедиться, что все необходимые методы реализованы в подклассах. Это также может возникнуть в других ситуациях, например, если вы пытаетесь использовать неопределенную функцию или метод.
🔗 Python tricks
Генераторные фунции (generator functions)
Если предикатов фильтрации или обработчиков элементов списка много, то удобнее использовать генераторы. Они могут не дать прироста скорости, но помогут сэкономить память.
Генераторной фунцией в python называется функция, которая ведет себя как итератор. Для определения генераторной функции нужно использовать ключевое слово yield.
🔗 Python tricks
Если предикатов фильтрации или обработчиков элементов списка много, то удобнее использовать генераторы. Они могут не дать прироста скорости, но помогут сэкономить память.
Генераторной фунцией в python называется функция, которая ведет себя как итератор. Для определения генераторной функции нужно использовать ключевое слово yield.
🔗 Python tricks
NumPy: Срезы
Срезы (slicing) — это способ выбора подмножества элементов из массива. Ты можешь использовать срезы для доступа к определенным элементам массива или для изменения значений в массиве. Результат включает начальный индекс, но исключает конечный индекс.
🔗 Python tricks
Срезы (slicing) — это способ выбора подмножества элементов из массива. Ты можешь использовать срезы для доступа к определенным элементам массива или для изменения значений в массиве. Результат включает начальный индекс, но исключает конечный индекс.
🔗 Python tricks
Создание и удаление объектов
Любое описание объекта в объектно-ориентированном программировании начинается с создания объекта и его удаления.
new(cls[, ...]) — метод создания типа класса. Он принимает первым аргументом тип класса, в котором он вызывается, и, как правило, возвращает этот же тип. В основном используется, чтобы настраивать создание экземпляра класса тех объектов, которые наследуются от неизменяемых типов (например, int, str, или tuple).
init(self[, ...]) — конструктор класса. Используется при определении объектов.
init_subclass(cls) — позволяет переопределить создание подклассов объекта.
🔗 Python tricks
Любое описание объекта в объектно-ориентированном программировании начинается с создания объекта и его удаления.
new(cls[, ...]) — метод создания типа класса. Он принимает первым аргументом тип класса, в котором он вызывается, и, как правило, возвращает этот же тип. В основном используется, чтобы настраивать создание экземпляра класса тех объектов, которые наследуются от неизменяемых типов (например, int, str, или tuple).
init(self[, ...]) — конструктор класса. Используется при определении объектов.
init_subclass(cls) — позволяет переопределить создание подклассов объекта.
🔗 Python tricks
Методы сравнения объектов между собой (ч.1)
Метод lt(self, other) в Python позволяет определить порядок сортировки объектов при использовании встроенных функций сортировки, таких как sorted(). При реализации этого метода в классе можно указать, какие атрибуты объекта должны учитываться при сравнении с другими объектами для определения их относительного порядка.
Например, предположим, что у нас есть класс Point, который представляет собой точку на плоскости и имеет атрибуты x и y. Мы можем определить метод lt(self, other) в классе Point, чтобы при сравнении двух точек учитывался их порядок по оси x, а в случае равенства координат по оси x - по оси y.
🔗 Python tricks
Метод lt(self, other) в Python позволяет определить порядок сортировки объектов при использовании встроенных функций сортировки, таких как sorted(). При реализации этого метода в классе можно указать, какие атрибуты объекта должны учитываться при сравнении с другими объектами для определения их относительного порядка.
Например, предположим, что у нас есть класс Point, который представляет собой точку на плоскости и имеет атрибуты x и y. Мы можем определить метод lt(self, other) в классе Point, чтобы при сравнении двух точек учитывался их порядок по оси x, а в случае равенства координат по оси x - по оси y.
🔗 Python tricks
Конструктор
Метод, который вызывается при создании объектов, в ООП зовётся конструктором. Он нужен для объектов, которые изначально должны иметь какие-то значение. Например, пустые экземпляры класса "Студент" бессмысленны, и желательно иметь хотя бы минимальный обозначенный набор вроде имени, фамилии и группы.
В качестве Питоновского конструктора выступает метод init()
🔗 Python tricks
Метод, который вызывается при создании объектов, в ООП зовётся конструктором. Он нужен для объектов, которые изначально должны иметь какие-то значение. Например, пустые экземпляры класса "Студент" бессмысленны, и желательно иметь хотя бы минимальный обозначенный набор вроде имени, фамилии и группы.
В качестве Питоновского конструктора выступает метод init()
🔗 Python tricks
NumPy: copy
numpy.copy() в библиотеке NumPy используется для создания копии массива или подмассива. Когда ты присваиваешь один массив другому, оба массива начинают указывать на одни и те же данные. Используя numpy.copy(), ты создаешь новый массив, который содержит копию данных из оригинального массива. Это позволяет изменять его без изменения оригинала.
🔗 Python tricks
numpy.copy() в библиотеке NumPy используется для создания копии массива или подмассива. Когда ты присваиваешь один массив другому, оба массива начинают указывать на одни и те же данные. Используя numpy.copy(), ты создаешь новый массив, который содержит копию данных из оригинального массива. Это позволяет изменять его без изменения оригинала.
🔗 Python tricks
Методы сравнения объектов между собой (ч.2)
Метод le(self, other) позволяет определить, каким образом объект вашего класса должен вести себя, когда сравнивается с другим объектом с помощью оператора "<=". Например, если вы хотите сравнивать объекты вашего класса по каким-то определенным критериям (например, по их атрибутам), вы можете переопределить метод le(self, other) таким образом, чтобы он возвращал True, если объект self меньше или равен объекту other в соответствии с этими критериями, и False в противном случае.
🔗 Python tricks
Метод le(self, other) позволяет определить, каким образом объект вашего класса должен вести себя, когда сравнивается с другим объектом с помощью оператора "<=". Например, если вы хотите сравнивать объекты вашего класса по каким-то определенным критериям (например, по их атрибутам), вы можете переопределить метод le(self, other) таким образом, чтобы он возвращал True, если объект self меньше или равен объекту other в соответствии с этими критериями, и False в противном случае.
🔗 Python tricks