По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Python часто называют «языком программирования с батарейками в комплекте», или, иначе говоря, полностью укомплектованным. Это лишь означает, что в него встроен ряд готовых библиотек, которые разработчики могут использовать, чтобы облегчить свою работу. Как вы, наверное, уже догадались, существует огромное количество библиотек для этого интерпретируемого высокоуровневого языка программирования общего назначения. Нет никаких сомнений в том, что одна из причин такой популярности Python – это наличие более ста тысяч библиотек на любой вкус. Чем больше библиотек и пакетов в своем распоряжении имеет язык программирования, тем больше существует различных вариантов его использования. Трудно сказать, какие из тысяч доступных библиотек Python на самом деле хороши, а какие не стоят не вашего внимания. Для того, чтобы помочь вам, мы перечислили в этой статье некоторые лучшие библиотеки Python. Ваш фаворит есть в этом списке? Читайте дальше, чтобы это узнать! Что такое библиотека Python? Прежде чем мы сможем ответить на этот вопрос, нам нужно понять, что такое библиотека – по крайней мере, с точки зрения программирования. Библиотеки состоят из классов, служебных методов и модулей. Когда вы пишете код для своего приложения, эти вещи могут вам пригодиться. Вместо того, чтобы писать код с нуля, вы можете воспользоваться готовыми компонентами библиотеки, чтобы выполнить какие-то определенные задачи в вашем коде. Благодаря этому вы сэкономите много времени и сил. Более того, библиотеки позволяют использовать код повторно и в то же время устанавливают некоторые стандарты для разработчиков. Так что же такое библиотеки Python? Так как Python стал наиболее широко используемым языком программирования за последние годы, то его используют для самых различных целей и приложений. Одна из главных причин, по которой Python так популярен, заключается в том, что он имеет огромное количество различных библиотек с открытым исходным кодом в своем арсенале, которые являются не только бесплатными, но и достаточно простыми в использовании. Библиотеки Python – это наборы полезных модулей, функций, классов и многого другого. Эти библиотеки помогают разработчикам ускорить процесс написания кода, предоставляя возможность работать с уже существующим кодом без лишних телодвижений. Стоит ли говорить, что библиотеки позволяют разработчикам сконцентрироваться на важных частях своих приложений, так как им больше не нужно писать код с нуля. Стоит отметить, что, так как Python используется в самых разных отраслях, то существуют топ библиотек Python практически для любых целей, которые вы только можете себе представить. Что следует учитывать при выборе библиотеки Python Теперь, когда вы знаете, чем вам может помочь библиотека в Python, у вас может возникнуть следующий вопрос: «Как мне выбрать правильную библиотеку?» Это вполне нормальный вопрос – в конце концов, на сегодняшний день доступно более 137 000 библиотек Python. И как тут решить, какая из них лучше всего подходит для ваших целей? Может оказаться трудным принять решение, когда вы сталкиваетесь с таким огромным выбором. Некоторые даже могут почувствовать себя беспомощными, не зная, что выбрать. А для некоторых выходом может стать даже то, что они решат просто написать все то, что им нужно, с нуля. Делать это, конечно же, не нужно. Вот некоторые вещи, которые следует учитывать при выборе лучших библиотек Python: Какова ваша предполагаемая цель? Понимание основной цели вашего проекта необходимо для того, чтобы помочь сузить круг подходящих библиотек Python. Для того, чтобы еще сократить список потенциальных кандидатов, рассмотрите любые второстепенный области, цели и особенности, которые так или иначе могут быть связаны с основной целью. Например, если ваш проект ориентирован на науку о данных, то вам может понадобиться библиотека, которая сможет поддерживать управление данными и их визуализацию. Какую версию Python вы используете? Есть множество различных версий Python, которые вы можете использовать для своих проектов. Когда вы выбрали определенную версию для своего приложения, вы должны убедиться, что все библиотеки, которые вы используете, совместимы с этой версией. Будет ли эта библиотека работать совместно с другими библиотеками, которые вы используете? Если вы используете несколько библиотек, то рекомендуется убедиться, что они могут работать вместе. Если вдруг вы используете несовместимые или пересекающиеся библиотеки, то они могут доставить вам больше вреда, чем пользы. Соответствует ли библиотека вашему бюджету? Есть огромное количество библиотек Python с открытым исходным кодом, которые вы можете использовать совершенно бесплатно. Если вы найдете среди них те, которые идеально подходят для вашего проекта, то вам, возможно, и не придется покупать какие-либо еще библиотеки. Однако все же есть библиотеки, за доступ к которым вам нужно будет заплатить. Топ библиотек Python 1. Requests Основное назначение: упрощение HTTP-запросов Одна из самых популярных общедоступных библиотек Python – это Requests. Ее цель – сделать HTTP-запросы более простыми и удобными для восприятия. Библиотека Requests имеет лицензию Apache2 и написана на Python. Она является фактическим стандартом, который используют разработчики для выполнения HTTP-запросов в Python. Помимо того, что библиотека Requests может использоваться для отправки HTTP-запросов на сервер, она также позволяет добавлять в них данные формы, содержимое, заголовок, файлы, состоящие из нескольких частей, и т.д. С этой библиотекой разработчикам не нужно добавлять запрос к URL-адресу или кодировать данные POST вручную. Библиотека Requests абстрагируется от многочисленных сложностей создания HTTP-запросов в простом API, поэтому разработчики могут больше сосредоточится на взаимодействии со службами. Библиотека поддерживает Python 2.7, 3.4 и выше, а также отлично работает с PyPy. Основные моменты: Разрешает загрузку нескольких файлов и потоковую загрузку Автоматическая расшифровка содержимого и автоматическое развертывание Проверка SSL в браузере Функции могут быть настроены и оптимизированы в соответствии с требованиями Постоянное соединение и объединенное подключение Поддерживает международные домены и URL-адреса 2. Pillow Основное назначение: обработка изображений Дополнительные назначения: архивирование изображений, отображение изображений Python Imaging Library, или PIL – это бесплатная библиотека Python, которая позволяет интерпретатору Python обрабатывать изображения. Иными словами, PIL дает возможность обрабатывать, открывать и сохранять различные форматы изображений в Python. Pillow была создана Алексом Кларком и его соавторами, и она является ответвлением библиотеки PIL. Помимо мощных возможностей обработки изображений, Pillow предлагает эффективное внутреннее представление информации и всестороннюю поддержку форматов файлов. Стандартная библиотека Python обеспечивает быстрый доступ к данным, которые хранятся в нескольких основных форматах пикселей. Основные моменты: Поддержка отладки с помощью метода show() Идеально подходит для приложений пакетной обработки данных Распознает и читает большое количество различных форматов файлов изображений Предлагает интерфейсы BitmapImage, PhotoImage и Window DIB Поддерживает произвольные аффинные преобразования, преобразования пространства цветов, фильтрацию с помощью набора встроенных ядер свертки, изменение размера и поворот изображения, а также поточечные операции Гистограммы позволяют извлечь некоторую статистику из изображения, а также могут использоваться для автоматического повышения контрастности и глобального статистического анализа 3. Scrapy Основное назначение: веб-скрейпинг Дополнительные назначения: автоматизированное тестирование, интеллектуальных анализ данных, сканирование веб-страниц (веб-краулинг) Scrapy – это бесплатный фреймворк Python с открытым исходным кодом, который широко используется для веб-скрейпинга и ряда других задач, в том числе автоматического тестирования и интеллектуального анализа данных. Изначально Scrapy был разработан именно для веб-скрейпинга, а позже был доработан для выполнения других задач. Библиотека предлагает быстрый и высокоуровневый метод сбора данных с веб-сайтов и извлечения структурированных данных с веб-страниц. Scrapy написан на Python и построен на основе «пауков», или автономных поисковых роботов, которым предоставляется набор инструкций. Scrapy соблюдает принцип DRY (don’t repeat yourself – не повторяйся) и тем самым упрощает создание и масштабирование готовых проектов веб-сканирования. Основные моменты: «Паука» для обхода веб-сайта и извлечения данных легко написать Следует принципу DRY Предлагает оболочку для сбора данных, которая позволяет разработчикам тестировать поведение веб-сайта Поддерживает экспорт собранных данных с помощью командной строки 4. Asyncio Основное назначение: работа с асинхронным кодом Разработчики Python по всему миру используют библиотеку asyncio для написания параллельного кода с помощью синтаксиса async/await. Библиотека asyncio больше всего подходит для кода, который связан с вводом-выводом, а также для высокоуровневого структурированного сетевого кода. Asyncio используется для создания различных асинхронных фреймворков Python, которые предлагают библиотеки подключения к базам данных, распределенные очереди задач, высокопроизводительные сетевые и веб-серверы и многое другое. В библиотеку встроен ряд высокоуровневых и низкоуровневых API. Основные моменты: Позволяет контролировать подпроцессы, распределять задачи по очередям, выполнять сетевой ввод-вывод и межпроцессное взаимодействие, а также синхронизировать параллельный код. Объединение библиотек и кода на основе обратных вызовов с помощью синтаксиса async/await и низкоуровневых API. Включает в себя набор высокоуровневых API для одновременного запуска сопрограмм Python и полного контроля над их выполнением. Упрощает работу с асинхронным кодом. Поддерживает создание циклов событий и управление ими, реализуя эффективные протоколы передачи данных. 5. Tkinter Основное назначение: разработка графического интерфейса Tkinter позволяет просто и быстро создавать приложения с графическим интерфейсом. Tkinter – это стандартная библиотека графического интерфейса для языка программирования Python. Она предлагает мощный объектно-ориентированный интерфейс для инструментария графического интерфейса "Tk". Процесс создания приложения с графическим интерфейсом с помощью Tkinter очень прост. Все, что от вас требуется, это выполнить следующие простые шаги: Импортировать Tkinter Создать главное окно для разрабатываемого приложения с графическим интерфейсом Добавить один или несколько графических элементов Tkinter Войти в основной цикл обработки событий, чтобы выполнить действий по каждому событию, инициированному пользователем В Tkinter есть более 15 типов графических элементов, в том числе кнопки, метки и текстовые поля. Каждый из них имеет доступ к определенных методам управления геометрией, которые необходимы для их организации в основной области графических элементов. Основные моменты: Включает в себя набор графических элементов, которые поддерживают методы управления геометрией Упрощает разработку приложений с графическим интерфейсом Поддерживает эффективный объектно-ориентированный интерфейс 6. Six Основное назначение: библиотека совместимости (сглаживание различий между Python 2 и Python 3) Несмотря на незамысловатость названия, Six – это мощная библиотека Python, которая предназначена для сглаживания различий между двумя версиями Python: 2 и 3. Библиотека Six поддерживает кодовые базы, которые могут работать как на Python 2, так и на Python 3 без внесения каких-либо изменений. Библиотека Six очень проста в использовании, поскольку представляет собой всего один файл Python. Поэтому скопировать библиотеку в проект Python до смешного просто. Название Six отражает следующее: (Python) 2 умножить на (Python) 3. Основные моменты: Простые служебные функции для обеспечения совместимости кода Python с Python 2 и Python 3. Поддерживает все версии, начиная с Python 2.6. Очень проста в использовании, так как содержится в одном файле Python. 7. aiohttp Основное назначение: служит асинхронным HTTP-клиентом/сервером Библиотека aiohttp – это еще одна простая, но при этом широко используемая библиотека Python. По сути, это асинхронный HTTP-клиент или сервер в Python. Эта библиотека выполняет только эту функцию и поддерживает клиентские и серверные веб-сокеты. Основные моменты: Предлагает веб-сервер с промежуточным ПО, подключаемой маршрутизацией и сигналами. Обеспечивает поддержку клиентских и серверных веб-сокетов Поддерживает HTTP-клиента и сервер 8. Pygame Основное назначение: разработка 2D-игр Дополнительное назначение: разработка мультимедийных приложений Pygame – это бесплатная библиотека Python с открытым исходным кодом. Она предназначена для разработки мультимедийных приложений на Python, в частности, двумерных игр. И как результат, она популярна среди как обычных, так и профессиональных разработчиков игр на Python. За кадром Pygame использует библиотеку SDL (Simple DirectMedia Layer). Как и SDL, библиотека Pygame отличается высокой переносимостью, а значит, обеспечивает поддержку большого количества платформ и операционных систем. Приложения, которые были разработаны с помощью Pygame можно портировать на Android-устройства, такие как смартфоны и планшеты. Для этого необходимо использовать pgs4a (версия Pygame для Android). Основные моменты: Не требует OpenGL Упрощает использование многоядерных процессоров Для использования всех доступных функций графический интерфейс не нужен Обеспечивает поддержку большого количества платформ и операционных систем Простая и удобная в использовании Использует код ассемблера и оптимизированный код С для реализации основных функций 9. Kivy Основное назначение: разработка приложений (с инновационными пользовательскими интерфейсами) При создании мобильных приложений и программного обеспечения мультитач-приложений с NUI (Natural User Interface – естественный пользовательский интерфейс) разработчики Python опираются на библиотеку Kivy. Kivy – это бесплатная библиотека Python с открытым исходным кодом. Она распространяется по лицензии MIT (лицензии свободного ПО, разработанной Массачусетским технологическим институтом) и работает на Android, iOS, Linux, macOS и Windows. На самом деле Kivy – это эволюционировавший проект PyMT. Эта библиотека содержит все элементы, которые необходимы для создания интуитивно понятного мультитач-приложения, а именно графическую библиотеку, большой набор графических элементов с поддержкой мультитач, промежуточный язык (Kv) и всестороннюю поддержку ввода. Kv, или язык Kivy, - это промежуточный язык, который предназначен для описания действий со стороны пользователя и интерфейса. Это позволяет легко создавать пользовательские интерфейсы и добавлять к ним способы взаимодействия. Kivy также обеспечивает поддержку Raspberry Pi. Основные моменты: Возможность по умолчанию использовать большинство устройств, входов и протоколов Кроссплатформенность Предлагает более 20 графических элементов с возможностью изменения их размеров Поддержка графического механизма, созданного на базе OpenGL ES 2. 10. Bokeh Основное назначение: разработка приложений, основанных на визуализации Дополнительное назначение: визуализация данных, наука о данных Bokeh – это интерактивная библиотека визуализации для языка программирования Python. Она позволяет красиво и понятно визуализировать данные в современных веб-браузерах. Библиотека визуализации данных упрощает создание информационных панелей, приложений данных и интерактивных графиков. Помимо лаконичного и изящного построения разнообразной графики, библиотека Bokeh также имеет дополнительные возможности благодаря высокопроизводительной интерактивности при потоковой передаче данных или при очень больших наборах данных. Основные моменты: Позволяет строить сложные статистические графики с помощью простых команд Визуализация, полученная с помощью Bokeh, может быть легко встроена в две самые популярные платформы Python – Django и Flask Возможность создавать изящные и интерактивные визуализации данных Несколько привязок к языку (Julia, Lua, Python и R) Различные форматы вывода 11. NumPy Основное назначение: научные и численные вычисления Дополнительные назначения: анализ данных, формирование основ других библиотек Python, таких как SciPy NumPy – это один из лучших модулей Python с открытым исходным кодом для научных и числовых вычислений и анализа данных. Более того, эта библиотека является основой для нескольких других библиотек Python, таких как SciPy и Sci-Kit Learn. NumPy чаще всего используется для математических операций с матрицами и массивами. Эту библиотеку очень часто используют ученые, которые выполняют анализ данных, из-за ее эффективных и быстрых вычислений. Также NumPy может обрабатывать многомерные массивы, поэтому большое количество разработчиков и специалистов по обработке данных используют ее для проектов в областях искусственного интеллекта и машинного обучения. Основные моменты: Повышение эффективность за счет вычислений с массивами Использует векторизацию для компактных и более быстрых вычислений Поддерживает объектно-ориентированный подход Предоставляет числовые подпрограммы в виде быстрых и предварительно скомпилированных функций 12. SciPy Основное назначение: визуализация данных и их обработка Дополнительные назначения: линейная алгебра, алгоритмы оптимизации, операции с изображениями (многомерными) Аналогично NumPy, SciPy является бесплатным модулем с открытым исходным кодом, что делает его общедоступным. SciPy основан на NumPy и также может использоваться для технических и научных вычислений с большими наборами данных. Эта библиотека играет важную роль в техническом и научном анализе данных. Именно поэтому она считается довольно важной библиотекой в Python. Некоторые даже называют ее основополагающей библиотекой для языка программирования Python. SciPy хорошо подходит для обработки изображений. Она имеет высокоуровневые команды, которые можно использовать для обработки данных и их визуализации. Основные моменты: Наборы функций и алгоритмов построены на основе NumPy Имеет встроенные функции, которые предназначены для решения дифференциальных уравнений Есть подмодуль SciPy ndimage, предназначенный для обработки изображений (многомерных) 13. Sci-Kit Learn Основное назначение: приложения машинного обучения Дополнительное назначение: статистическое моделирование Sci-Kit Learn основан на Numpy и SciPy и прежде был известен как Sklearn. Это бесплатная библиотека Python, и она очень часто воспринимается как расширение библиотеки SciPy. Sci-Kit Learn была создана специально с целью разработки алгоритмов машинного обучения и моделирования данных. Для многих Sci-Kit Learn – это одна из лучших библиотек Python, а все из-за ее последовательного, простого и интуитивно понятного интерфейса. Поскольку она очень удобна в использовании, многие считают, что она идеально подходит для новичков. Основные моменты: Библиотека машинного обучения Предлагает практически все алгоритмы, которые необходимы для машинного обучения Создана на основе SciPy, NumPy и Matplotlib 14. Theano Основное назначение: машинное и глубокое обучение Дополнительные назначения: оценка, анализ и обработка математических выражений Библиотека численных вычислений, которая известна как Theano, была создана специально для машинного обучения. Многие разработчики используют эту библиотеку для моделей глубокого обучения из-за ее функций. Подавляющее большинство пользователей Theano – это разработчики глубокого и машинного обучения. Theano предлагает возможность интеграции с NumPy при необходимости. Когда Theano используется совместно с графическим процессором (таким как видеокарта) вместо центрального процессора (такого как Intel Core i5 или i7 или AMD Ryzen), то она может выполнять вычисления в 140 раз быстрее. Основные моменты: Интегрируется с NumPy Работает с центральными процессорами, но намного эффективнее работает с графическими процессорами; может выполнять вычисления намного быстрее, работая с графическим процессором Оптимизирована для сохранения стабильности и скорости Использует многомерные массивы для создания моделей глубокого обучения 15. TensorFlow Основное назначение: глубокое обучение и машинное обучение; большие численные вычисления Дополнительные назначения: текстовые приложения, обнаружение видео, распознавание речи/изображений, анализ временных рядов TensorFlow – это библиотека с открытым исходным кодом, которая первоначально была разработана исследователями из Google. Ее специализация - дифференцируемое программирование, но основная цель ее создания – это машинное и глубокое обучение, а также другие рабочие нагрузки в прогнозной и статистической аналитике. Возможности и набор встроенных инструментов TensorFlow упрощают процесс создания моделей машинного и глубокого обучения. TensorFlow также упрощает процесс создания нейронных сетей, независимо от того, занимаются ли эти профессионалы или новички. Платформа и архитектура TensorFlow очень гибкие. Это позволяет использовать библиотеку как с центральными процессорами, так и с графическими. Но если вы хотите раскрыть всю мощь TensorFlow, то вам лучше работать с TPU (Tensor processing unit – тензорный процессор). Эта библиотека не ограничивается настольными устройствами, вы также можете использовать ее на смартфонах и серверах. Основные моменты: Частые обновления и новые выпуски – залог того, что у вас будут новые функции и чистый код Поддерживается Google Улучшенная визуализация вычислительных графиков 16. PyTorch Основное назначение: наука о данных Дополнительные назначения: исследования в области глубокого обучения PyTorch – еще одна библиотека с открытым исходным кодом, которую часто используют для обработки данных. Эта библиотека основана на Torch (фреймворк для языка программирования C), и она может интегрироваться с другими библиотеками Python, такими как NumPy. PyTorch способна незаметно для пользователя создавать графы вычислений, которые можно менять, пока программа запущена. PyTorch чаще всего используется в приложениях машинного и глубокого обучения, в том числе обработки естественного языка и компьютерного зрения. Эта библиотека хорошо известна тем, что способна быстро выполнять команды даже при больших нагрузках. Библиотека PyTorch достаточно гибкая, что позволяет ей работать на центральных, графических и упрощенных процессорах. Пользователи могут расширять PyTorch с помощью своих наборов API. Основные моменты: Тензорные вычисления с помощью графического процессора для более быстрой и эффективной обработки Простой и удобный API Использует динамические графы вычислений Имеет большое сообщество 17. Keras Основное назначение: машинное и глубокое обучение Дополнительное назначение: визуализация данных Keras – это библиотека Python с открытым исходным кодом, которая была создана преимущественно для разработки и оценки нейронных сетей в моделях машинного и глубокого обучения. Эта библиотека может работать наряду с TensorFlow и Theano, а это значит, что разработчики могут начать обучение своих нейронных сетей с небольшого количества кода. Keras – гибкая, расширяемая и модульная, поэтому она отлично подходит для новичков. Эта библиотека также является переносимой, что означает, что вы можете использовать ее в различных средах как на графических, так и на центральных процессорах. Часто разработчики используют эту библиотеку для визуализации данных или моделирования. Основные моменты: Поддерживает серверные части Theano и TensorFlow Предусматривает предварительно размеченные наборы данных, которые разработчики могут использовать непосредственно для загрузки/импорта Предлагает простые и согласующиеся API Проста в освоении и использовании, небольшая кривая обучения 18. Pandas Основное назначение: наука о данных Дополнительные назначения: анализ данных и машинное обучение Pandas – это одна из самых популярных библиотек Python на сегодняшний день, как минимум, в области науки о данных. Pandas – это еще одна библиотека, созданная на основе NumPy. Эта библиотека позволяет пользователям создавать комплексные, но интуитивно понятные высокоуровневые структуры данных. Pandas используется в различных отраслях – от статистики до инженерии (и даже в финансовой сфере). Есть одна вещь, которая делает библиотеку Pandas просто замечательной, - это ее гибкость и возможность использования с другими научными библиотеками и библиотеками численного анализа Python. Основные моменты: Используется во многих коммерческих областях, включая финансовую сферу, нейронауки и статистику. Используется в научных областях Создана на основе NumPy Помогает в решении большого количества громоздких и трудоемких задач, связанных с данными 19. Matplotlib Основное назначение: визуализация данных Дополнительное назначение: машинное обучение Matplotlib – это библиотека Python с открытым исходным кодом, которую часто приводят в пример, как альтернативу платному MATLAB. Matplotlib – это расширение SciPy, и оно было создано для визуализации данных в силу того, того, что она используется для создания диаграмм и графиков. Matplotlib может работать со сложными моделями данных, которые выводит Pandas, и со структурами данных, которые создает NumPy. У Matplotlib есть ограничение – она может создавать только 2D-графики. Но несмотря на это, эта библиотека может создавать готовые к публикации визуализации данных в виде графиков, диаграмм, гистограмм, точечных диаграмм, диаграмм ошибок, и конечно, линейчатых диаграмм. Эта библиотека очень проста в использовании и интуитивно понятна, поэтому многие новички предпочитают работать именно с ней, когда только пробуют себя в визуализации данных. Matplotlib также выбирает немалое количество разработчиков, которые уже имеют опыт работы с другими инструментами визуализации данных. Основные моменты: Открытый исходный код, хорошая замена MATLAB (платное приложение) Малое потребление памяти Поддержка большого сообщества Предлагает различные типы визуализации данных (коробчатые диаграммы, точечные диаграммы, гистограммы, диаграммы ошибок и т.д.) 20. Seaborn Основное назначение: визуализация данных Дополнительное назначение: машинное обучение Аналогично Matplotlib, Seaborn – это библиотека Python, которая была создана для построения графиков и визуализации данных. По сути, эта библиотека была основана на самой Matplotlib, хотя она также включает в себя некоторые структуры данных Pandas. Seaborn имеет высокоуровневый интерфейс с огромным количеством функций, которые позволяют пользователям создавать не просто точные, но и информативные статистические графики. Большое количество разработчиков и пользователей Seaborn согласятся с тем фактом, что эта библиотека создает одни из самых красивых визуализаций данных. Именно поэтому она идеально подходит для использования в маркетинговых и издательских приложениях. Пользователи также любят Seaborn за ее способность создавать графики и диаграммы с помощью простых команд и минимального количества программного кода, что экономит им время. Основные моменты: Создана на основе Matplotlib Позволяет разработчикам создавать красивые информативные графики с помощью высокоуровневого интерфейса Позволяет создавать такие графики, как попарные графики, гистограммы, линейчатые диаграммы, точечные диаграммы и т.д. 21. BeautifulSoup Основное назначение: наука о данных Дополнительное(-ые) назначение(-я): веб-скрейпинг Beautiful Soup получила свое название благодаря своей способности анализировать документы HTML и XML (даже с некорректной разметкой, которую называют «tag soup» - «суп из тегов»). Этот пакет Python обходит веб-сайты, собирает данные и подготавливает их для дальнейшей работы. Beautiful Soup – это универсальный пакет, и поэтому его выбирают многие аналитики данных и ученые. Разработчики, занимающиеся вопросами машинного и глубокого обучения, также используют Beautiful Soup для получения данных для обучения своих моделей машинного/глубокого обучения. Основные моменты: Позволяет извлекать данные из HTML и XML, даже из документов с некорректной или неполной разметкой (например, с незакрытыми тегами) Задумывалась как средство синтаксического анализа HTML, которое могло бы сделать «суп из тегов» работоспособным и даже «красивым» 22. PyCaret Основное назначение: машинное обучение PyCaret получила свое название от библиотеки Python, основанной на Caret, - библиотеке машинного обучения на языке программирования R. Это библиотека с открытым исходным кодом, и она была создана для машинного обучения. Она предлагает функции, которые помогают упростить и автоматизировать программы машинного обучения. Несмотря на наличие небольшой кривой обучения, PyCaret относительно прост в использовании. Основные моменты: Высокоуровневая и малокодовая библиотека Автоматизирует рабочие процессы в машинном обучении Помогает ускорить циклы экспериментов, повышая тем самым производительность Позволяет разработчикам развертывать модели машинного обучения с малым количеством кода 23. OpenCV Основное назначение: компьютерное зрение и обработка изображений Дополнительное назначение: машинное обучение Как и любая библиотека Python, OpenCV имеет большой количество различных функций. Это делает ее отличным инструментом для программ компьютерного зрения в режиме реального времени. Эта высокоэффективная библиотека способна обрабатывать различные входные данные с визуальной информацией, взятой не только из изображений, но и из видеоданных. OpenCV может распознавать лица, почерк и объекты. Основные моменты: Выполняет такие задачи, как отслеживание угроз, обнаружение лиц, обнаружение ориентиров и многое другое Предоставляет разработчикам доступ к более чем 2500 классическим современным алгоритмам Широко используется даже такими технологическими гигантами, как Google, IBM, Toyota и другими Используется для анализа изображений/видео 24. LightGBM Основное назначение: машинное обучение LightGBM расшифровывается как Light Gradient Boosting Machine. Это бесплатный фреймворк градиентного бустинга, разработанный Microsoft для машинного обучения. Он удобен и интуитивно понятен. Изучить его намного проще, чем некоторые другие библиотеки для глубокого обучения. Основные моменты: Обеспечивает эффективное использование памяти и высокую вычислительную мощность Первоначально разработан Microsoft Возможность работы с большими объемами данных Обеспечивает высокую точность результатов Вот и все! Приведенный выше список содержит одни из самых лучших библиотек из сотен тысяч других. Приятно осознавать, что все эти библиотеки часто обновляются и улучшаются, чтобы не отставать от Python и его растущей популярности. Если вы изучите хотя бы одну из этих библиотек, это сможет помочь вам в изучении языка, а также стать хорошим разработчиком Python во всех отношениях. Часто задаваемые вопросы 1. Что такое библиотеки Python? Библиотеки Python – это наборы функций, модулей и других компонентов, которые позволяют разработчикам использовать уже существующий код для определенных задач. Библиотеки могут быть как общими, так и более специализированными. Они могут помочь разработчикам сэкономить время и силы, избавив от необходимости писать огромную часть приложения с нуля. 2. Какие есть примеры библиотек Python? Есть большое количество очень популярных пакетов и библиотек Python. Если вам нужны примеры таких библиотек, то вот вам несколько громких наименований: Requests Numpy, SciPy, SciKit-Learn PyTorch Pandas Seaborn Theano TensorFlow 3. Где можно найти список всех библиотек Python? Если вы имеете в виду список всех модулей, пакетов и библиотек, установленных сейчас в вашей версии Python, то это можно сделать с помощью команды help(“modules”), pip list или pip freeze 4. Для чего нужны библиотеки Python? Библиотеки Python необходимы для того, чтобы упростить и оптимизировать работу разработчика. Вместо того, чтобы писать какие-то части проекта с нуля, разработчики могут воспользоваться модулями и связками кода из библиотек. Также библиотеки могут устанавливать стандарты написания программного кода, что упрощает сопровождение кода. 5. Все ли библиотеки Python являются бесплатными? Большая часть крупных библиотек допускают бесплатное коммерческое использование. Однако не все библиотеки так просты в использовании и освоении. Поэтому, даже если библиотека бесплатная, возможно, вам придется заплатить за какие-либо лицензионные или платные модули, или программное обеспечение, чтобы упростить отладку и сопровождение в долгосрочной перспективе. Кроме того, даже если библиотека является бесплатной для коммерческого использования, вам, вероятно, придется доплатить, если вы хотите включить какие-то модули в свои приложения, которые в дальнейшем будете распространять среди будущих клиентов. 6. Как работают библиотеки в Python? Библиотеки Python позволяют разработчикам использовать модули и связки кода в своих проектах многократно. Библиотеки позволяют вам использовать уже готовый код и добавить его к своему вместо того, чтобы каждый раз писать кода с нуля.
img
В прошлой статье мы создали и настроили контроллер домена (DC), настало время наполнить наш домен пользователями и рабочими станциями. Конфигурация Открываем Server Manager и выбираем опцию Roles. Из доступных ролей выбираем недавно установленную - Active Directory Domain Services, далее Active Directory Users and Computers и находим созданный нами домен (в нашем случае - merionet.loc). В выпадающем списке объектов находим Users и кликаем по данной опции правой кнопкой мыши и выбираем New → User. Отметим также, что вы можете создать свою группу и добавлять пользователей туда. Перед нами откроется окно добавления нового пользователя. Заполняем учетные данные нового пользователя. Как правило, в корпоративных доменах, принято создавать именные учетные записи для того, чтобы в дальнейшем можно было отслеживать действия конкретного пользователя в целях безопасности и однозначно его идентифицировать. Далее, нас просят ввести пароль для новой учетной записи и выбрать дополнительные опции: User must change password at next logon - при включении данной опции, пользователя попросят сменить пароль при следующем логине; User cannot change password - пользователь не сможет самостоятельно изменить свой пароль; Password never expires - срок действия пароля пользователя никогда не истечет; Account is disabled - учетная запись пользователя будем отключена и он не сможет залогиниться с доменными учетными данными, даже если они будут введены верно. После того, как все данные будут заполнены, нас попросят подтвердить создание нового объекта. Отлично, новый пользователь домена создан. Теперь нам нужно зайти на компьютер пользователя и ввести его в домен. Для этого логинимся на компьютер пользователя с локальными учетными данными и открываем Свойства компьютера. Как видите, наш компьютер пока еще не стал частью домена, он ещё является частью рабочей группы WORKGROUP/. Убедитесь, что компьютер пользователя имеет версию Windows не ниже Professional. Чтобы ввести его в домен выбираем Change Settings Важно! Поддержка доменной инфраструктуры начинается только с версии Windows Professional. На версиях Starter, Home Basic, Home Premium подключиться к домену не получится! Далее напротив опции "To rename this computer or change its domain or workgroup, click Change" нажимаем собственно Change Важно! Для того, чтобы наш компьютер узнал о существующем контроллере домена нам нужно указать ему на DNS сервер, который имеет такую информацию. В нашем случае – контроллер домена является по совместительству DNS сервером для пользовательских машин. Поэтому мы указываем контроллер домена в качестве DNS сервера для настраиваемого компьютера. Далее в открывшемся окне в опции "Member of" вместо Workgroup выбираем Domain и вводим имя нашего домена (в нашем случае – merionet.loc) Далее нас попросят ввести учетные данные для учетной записи, которая уже создана и имеет право присоединиться к домену. Вводим учетные данные ранее созданного пользователя. Если все было сделано корректно, то мы увидим сообщение, свидетельствующее о том, что наш компьютер теперь является частью домена (в нашем случае - merionet.loc) После чего, нас попросят перезагрузить компьютер для применения изменений. После перезагрузки, мы можем логиниться уже с учетными данными доменного пользователя. Теперь, если мы откроем свойства компьютера, то увидим, что наш компьютер принадлежит домену (в нашем случае – merionet.loc)
img
Перед началом, советуем почитать материал про плоскость управления. Топология - это набор связей (или ребер) и узлов, которые описывают всю сеть. Обычно топология описывается и рисуется как граф, но она также может быть представлена в структуре данных, предназначенной для использования машинами, или в дереве, которое обычно предназначено для использования людьми. Топологическую информацию можно обобщить, просто сделав так, чтобы пункты назначения, которые физически (или виртуально) соединены на расстоянии нескольких прыжков, казались непосредственно присоединенными к локальному узлу, а затем удалив информацию о связях и узлах в любой маршрутной информации, переносимой в плоскости управления, с точки суммирования. Рисунок 4 иллюстрирует эту концепцию. Изучение топологии Казалось бы, достаточно просто узнать о топологии сети: изучить подключенные каналы передачи данных. Однако то, что кажется простым в сетях, часто оказывается сложным. Изучение локального интерфейса может рассказать вам о канале, но не о других сетевых устройствах, подключенных к этому каналу. Кроме того, даже если вы можете обнаружить другое сетевое устройство, работающее с той же плоскостью управления по определенному каналу, это не означает, что другое устройство может вас обнаружить. Таким образом, необходимо изучить несколько вопросов. Обнаружение других сетевых устройств Если маршрутизаторы A, B и C подключены к одному каналу, как показано на рисунке 5, какие механизмы они могут использовать для обнаружения друг друга, а также для обмена информацией о своих возможностях? Первое, что следует отметить в отношении сети, показанной в левой части рисунка 5, - это то, что интерфейсы не соответствуют соседям. Фактические отношения соседей показаны в правой части рисунка 5. У каждого маршрутизатора в этой сети есть два соседа, но только один интерфейс. Это показывает, что плоскость управления не может использовать информацию об интерфейсе для обнаружения соседей. Должен быть какой-то другой механизм, который плоскость управления может использовать для поиска соседей. Ручная настройка - одно из широко распространенных решений этой проблемы. В частности, в плоскостях управления, предназначенных для перекрытия другой плоскости управления, или плоскостях управления, предназначенных для построения отношений соседства через несколько маршрутизируемых переходов по сети, ручная настройка часто является самым простым доступным механизмом. С точки зрения сложности, ручная настройка очень мало добавляет к самому протоколу. Например, нет необходимости в какой-либо форме многоадресного объявления соседей. С другой стороны, ручная настройка соседей требует настройки информации о соседях, что увеличивает сложность с точки зрения конфигурации. В сети, показанной на рисунке 5, маршрутизатор A должен иметь отношения соседства, настроенные с помощью B и C, маршрутизатор B должен иметь отношения соседства, настроенные с помощью A и C, а маршрутизатор C должен иметь отношения соседства, настроенные с помощью A и B. Даже если настройка соседей автоматизирована, ручная настройка углубляет и расширяет поверхности взаимодействия между плоскостями управления и контроля. Определение соседей из маршрутных объявлений - это решение, которое когда-то было широко распространено, но стало менее распространенным. В этой схеме каждое устройство периодически объявляет информацию о доступности и / или топологии. Когда маршрутизатор впервые получает информацию о маршрутизации от другого устройства, он добавляет удаленное устройство в локальную таблицу соседей. Пока соседнее устройство продолжает отправлять информацию о маршрутизации на регулярной основе, отношения между соседями будут считаться активными или активными. При выводе соседей из объявлений о маршрутизации важно иметь возможность определить, когда сосед вышел из строя (чтобы информация о достижимости и топологии, полученная от соседа, могла быть удалена из любых локальных таблиц). Наиболее распространенный способ решения этой проблемы - использование пары таймеров: таймера задержки или отключения и таймера обновления или объявления. Пока сосед отправляет обновление или объявление в пределах таймера отключения или задержки, он считается включенным или активным. Если весь "мертвый" период проходит без получения каких-либо обновлений, сосед считается "мертвым", и предпринимаются некоторые действия, чтобы либо проверить информацию о топологии и доступности, полученную от соседа, либо он просто удаляется из таблицы. Нормальная взаимосвязь между таймером отключения и таймером обновления составляет 3× - таймер отключения установлен на трехкратное значение таймера обновления. Следовательно, если сосед не отправляет три подряд обновления или объявления, таймер бездействия активируется и начинает обработку неработающего соседа. Явные приветствия являются наиболее распространенным механизмом обнаружения соседей. Пакеты приветствия передаются на основе таймера приветствия, и сосед считается "мертвым", если приветствие не получено в течение интервала таймера ожидания или объявления. Это похоже на таймеры dead и update, используемые для вывода соседей из объявлений маршрутизации. Приветствия обычно содержат информацию о соседней системе, такую как поддерживаемые возможности, идентификаторы уровня устройства и т. д. Централизованная регистрация - это еще один механизм, который иногда используется для обнаружения и распространения информации о соседних устройствах. Каждое устройство, подключенное к сети, будет отправлять информацию о себе в какую-либо службу и, в свою очередь, узнавать о других устройствах, подключенных к сети, из этой централизованной службы. Конечно, эту централизованную службу нужно каким-то образом обнаружить, что обычно осуществляется с помощью одного из других упомянутых механизмов. Обнаружение двусторонней связи В плоскостях управления с более сложными процессами формирования смежности - особенно протоколами, которые полагаются на приветствия для формирования отношений соседства - важно определить, могут ли два маршрутизатора видеть друг друга (осуществлять двустороннюю связь), прежде чем формировать отношения. Обеспечение двусторонней связи не только предотвращает проникновение однонаправленных каналов в таблицу пересылки, но также предотвращает постоянный цикл формирования соседей - обнаружение нового соседа, построение правильных локальных таблиц, объявление о доступности новому соседу, тайм-аут ожидания hello или другую информацию, удаление соседа или поиск нового соседа. Существует три основных варианта управления двусторонним подключением между сетевыми устройствами. Не утруждайте себя проверкой двусторонней связи. Некоторые протоколы не пытаются определить, существует ли двусторонняя связь между сетевыми устройствами в плоскости управления, а скорее предполагают, что сосед, от которого принимаются пакеты, также должен быть доступен. Перенос списка доступных соседей, услышанных на линии связи. Для протоколов, которые используют приветствия для обнаружения соседей и поддержания работоспособности, перенос списка доступных соседей по одному и тому же каналу является распространенным методом обеспечения двусторонней связи. Рисунок 6 иллюстрирует это. На рисунке 6 предположим, что маршрутизатор A включен раньше B. В этом случае: A отправит приветствия с пустым списком соседей, поскольку он не получил приветствия от любого другого сетевого устройства по каналу. Когда B включен, он получит приветствие A и, следовательно, включит A в список соседей, которые он слышал в своих hello пакетах. Когда A получает приветствие B, он, в свою очередь, включает B в свой список "услышанных" соседей в своих пакетах приветствия. Когда и A, и B сообщают друг о друге в своих списках соседей, которые "слышно от", оба маршрутизатора могут быть уверены, что двустороннее соединение установлено. Этот процесс часто называют трехсторонним рукопожатием, состоящим из трех шагов: A должен послать привет B, чтобы B мог включить A в свой список соседей. B должен получить приветствие A и включить A в свой список соседей. A должен получить приветствие B с самим собой (A) в списке соседей B. Положитесь на базовый транспортный протокол. Наконец, плоскости управления могут полагаться на базовый транспортный механизм для обеспечения двусторонней связи. Это необычное решение, но есть некоторые широко распространенные решения. Например, протокол Border Gateway Protocol (BGP), опирается на протокол управления передачей (TCP), чтобы обеспечить двустороннюю связь между спикерами BGP. Определение максимального размера передаваемого блока (MTU) Для плоскости управления часто бывает полезно выйти за рамки простой проверки двусторонней связи. Многие плоскости управления также проверяют, чтобы максимальный размер передаваемого блока (MTU) на обоих интерфейсах канала был настроен с одинаковым значением MTU. На рисунке 7 показана проблема, решаемая с помощью проверки MTU на уровне канала в плоскости управления. В ситуации, когда MTU не совпадает между двумя интерфейсами на одном канале, возможно, что соседние отношения сформируются, но маршрутизация и другая информация не будут передаваться между сетевыми устройствами. Хотя многие протоколы имеют некоторый механизм для предотвращения использования информации о результирующих однонаправленных каналах при вычислении путей без петель в сети, все же полезно обнаруживать эту ситуацию, чтобы о ней можно было явным образом сообщить и исправить. Протоколы плоскости управления обычно используют несколько методов, чтобы либо явно обнаружить это условие, либо, по крайней мере, предотвратить начальные этапы формирования соседей. Протокол плоскости управления может включать локально настроенный MTU в поле в пакетах приветствия. Вместо того чтобы просто проверять наличие соседа во время трехстороннего рукопожатия, каждый маршрутизатор может также проверить, чтобы убедиться, что MTU на обоих концах линии связи совпадает, прежде чем добавлять новое обнаруженное сетевое устройство в качестве соседа. Другой вариант - добавить пакеты приветствия к MTU локального интерфейса. Если дополненный пакет приветствия максимального размера не получен каким-либо другим устройством в канале связи, начальные этапы отношений соседства не будут завершены. Трехстороннее рукопожатие не может быть выполнено, если оба устройства не получают пакеты приветствия друг друга. Наконец, протокол плоскости управления может полагаться на базовый транспорт для регулирования размеров пакетов, чтобы коммуникационные устройства могли их принимать. Этот механизм в основном используется в плоскостях управления, предназначенных для наложения какой-либо другой плоскости управления, особенно в случае междоменной маршрутизации и виртуализации сети. Плоскости управления наложением часто полагаются на обнаружение MTU пути (Path MTU) для обеспечения точного MTU между двумя устройствами, подключенными через несколько переходов. Сам размер MTU может оказать большое влияние на производительность плоскости управления с точки зрения ее скорости сходимости. Например, предположим, что протокол должен передавать информацию, описывающую 500 000 пунктов назначения по многопоточному каналу с задержкой 500 мс, и для описания каждого пункта назначения требуется 512 бит: Если MTU меньше 1000 бит, для плоскости управления потребуется 500 000 циклов туда и обратно для обмена всей базой данных доступных пунктов назначения, или около 500 000 × 500 мс, что составляет 250 000 секунд или около 70 часов. Если MTU составляет 1500 октетов или 12000 битов, плоскости управления потребуется около 21000 циклов туда и обратно для описания всей базы данных доступных пунктов назначения, или около 21000 × 500 мс, что составляет около 175 минут. Важность сжатия такой базы данных с использованием какого-либо оконного механизма для сокращения числа полных обходов, необходимых для обмена информацией о достижимости, и увеличения MTU вполне очевидна. Далее почитайте материал о том, как происходит обнаружение соседей в сетях.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59