Язык программирования Python — КиберПедия 

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Язык программирования Python

2020-05-07 347
Язык программирования Python 0.00 из 5.00 0 оценок
Заказать работу

Язык программирования Python является одним из самых простых в освоении и популярных языков программирования.

Язык Python обладает некоторыми примечательными особенностями, которые обуславливают его широкое распространение. Поэтому, прежде чем изучать Python, следует рассказать о его достоинствах и недостатках.

Python - интерпретируемый язык программирования. С одной стороны, это позволяет значительно упростить отладку программ, с другой - обуславливает сравнительно низкую скорость выполнения.

Динамическая типизация. В Python не надо заранее объявлять тип переменной, что очень удобно при разработке.

Хорошая поддержка модульности. Вы можете легко написать свой модуль и использовать его в других программах.

Встроенная поддержка Unicode в строках. В Python необязательно писать всё на английском языке, в программах вполне может использоваться ваш родной язык.

Поддержка объектно-ориентированного программирования. При этом его реализация в Python является одной из самых понятных.

Автоматическая сборка мусора, отсутствие утечек памяти.

Интеграция с C/C++, если возможностей Python недостаточно.

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

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

Кроссплатформенность. Программа, написанная на Python, будет функционировать совершенно одинаково вне зависимости от того, в какой операционной системе она запущена. Отличия возникают лишь в редких случаях, и их легко заранее предусмотреть благодаря наличию подробной документации.

Python характеризуется ясным синтаксисом. Читать код на нем легче, чем на других языках программирования, т. к. в Питоне мало используются такие вспомогательные синтаксические элементы как скобки, точки с запятыми. С другой стороны, правила языка заставляют программистов делать отступы для обозначения вложенных конструкций. Понятно, что хорошо оформленный текст с малым количеством отвлекающих элементов читать и понимать легче.

Python – это полноценный во многом универсальный язык программирования, используемый в различных сферах. Основная, но не единственная, поддерживаемая им парадигма, объектно-ориентированное программирование. Однако в данном курсе мы только упомянем об объектах, а будем изучать структурное программирование, так как оно является базой. Без знания основных типов данных, ветвлений, циклов, функций нет смысла изучать более сложные парадигмы, т. к. в них все это используется.

Интерпретаторы Python распространяется свободно на основании лицензии подобной GNU General Public License.

Библиотека PyQT.

Комплект «привязок» графического фреймворка Qt для языка программирования Python, произведенный в облике расширения Python. PyQt разработан английской фирмой Riverbank Computing. PyQt трудится на всех платформах, поддерживаемых Qt: Linux и иные UNIX-подобные ОС, Mac OS X и Windows.

Довольно нередко в программках приходится применить многопоточность. Временами это большие пулы струй со трудным взаимодействием, но значительно почаще это случается незатейливый код, ключевое заявка к которому — не замораживать и не затормаживать интерфейс. В PyQt есть 2 ведущих способы работы с струями высочайшего значения: threading и QThread. Для меня QThread оказался предпочтительней по причине наилучшей связи с механизмом сигналов-слотов в Qt. Наконец, инструмент избран, все очень хорошо трудится, но со периодом захотелось устроить работу с струями некоторое количество легче и удобней. Появилась мысль устроить модуль работы с струями для несложных случаев: simple_thread

Данный модуль специализирован для работы с струями в классах, унаследованных от QObject. С поддержкой него возможно вынудить всякий способ класса производиться в отдельном струе, при данном изнутри способа возможно обращаться (хотя и ограниченно) к атрибутам и способам класса.

Библиотека OpenCV

Библиотека компьютерного зрения и машинного обучения с открытым исходным кодом. В неё входят более 2500 алгоритмов, в которых есть как классические, так и современные алгоритмы для компьютерного зрения и машинного обучения. Эта библиотека имеет интерфейсы на различных языках, среди которых есть Python.

     Основные модули

В версии 2.2 библиотека была реорганизована. Вместо универсальных модулей cxcore, cvaux, highGUI и других было создано несколько компактных модулей с более узкой специализацией:

•   opencv_core — основная функциональность. Включает в себя базовые структуры, вычисления(математические функции, генераторы случайных чисел) и линейную алгебру, DFT, DCT, ввод/вывод для XML и YAWL и т. д.

•   opencv_imgproc — обработка изображений (фильтрация, геометрические преобразования, преобразование цветовых пространств и т. д.).

•   opencv_highgui — простой UI, ввод/вывод изображений и видео.

•   opencv_ml — модели машинного обучения (SVM, деревья решений, обучение со стимулированием и т. д.).

•   opencv_features2d — распознавание и описание плоских примитив

•   opencv_video — анализ движения и отслеживание объектов (оптический поток, шаблоны движения, устранение фона).

•   opencv_objdetect — обнаружение объектов на изображении (нахождение лиц с помощью алгоритма ВиолыДжонса (англ.), распознавание людей HOG и т. д.).

•   opencv_calib3d — калибровка камеры, поиск стерео-соответствия и элементы обработки трехмерных данных.

•   opencv_flann — библиотека быстрого поиска ближайших соседей (FLANN 1.5) и обертки OpenCV.

•   opencv_contrib — сопутствующий код, ещё не готовый для применения.

•   opencv_legacy — устаревший код, сохраненный ради обратной совместимости.

•   opencv_gpu — ускорение некоторых функций OpenCV за счет CUDA, создан при поддержке NVidia.

Структура библиотеки OpenCV

· Cxcore ядро содержит базовые структуры данных и алгоритмы:

· Базовые операции над многомерными числовыми массивами;

· Матричная алгебра, математические функции, генераторы случайных чисел;

· Базовые функции 2D графики CV — модуль обработки изображений и компьютерного зрения;

· Базовые операции над изображениями (фильтрация, геометрические преобразования, преобразование цветовых пространств и т. д.);

· Анализ изображений (выбор отличительных признаков, морфология, поиск контуров, гистограммы);

· Обнаружение объектов, в частности лиц;

· Highgui — модуль для ввода/вывода изображений, создания пользовательского интерфейса

· Чтение/запись статических изображений.

· Функции для организации простого UI

· Нахождение и описание черт лица

Библиотека Seaborn

Seaborn — это более высокоуровневое API на базе библиотеки matplotlib. Seaborn содержит более простые настройки оформления графиков. Также в библиотеке есть достаточно сложные типы визуализации, которые в matplotlib потребовали бы большого количество кода.

Первый тип графиков pair plot (scatter plot matrix). Эта визуализация поможет нам посмотреть на одной картинке, как связаны между собой различные признаки.

Для сохранения графиков в файлы стоит использовать метод savefig.

С помощью seaborn можно построить и распределение dist plot. Для примера посмотрим на распределение оценок критиков Critic_Score. По умолчанию на графике отображается гистограмма и kernel density estimation.

Для того, чтобы подробнее посмотреть на взаимосвязь двух численных признаков, есть еще и joint plot — это гибрид scatter plot и histogram. Посмотрим на то, как связаны между собой оценка критиков Critic_Score и оценка пользователя User_Score.

Библиотека Imutils

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

Перевод

Перевод - это смещение изображения в направлении x или y. Чтобы перевести изображение в OpenCV, вам необходимо указать (x, y) -смещение, обозначенное (t x, t y), чтобы построить матрицу перевода M:

И оттуда вам нужно будет применить cv2.warpAffineфункцию.

Вместо того, чтобы вручную создавать матрицу перевода M и вызывать cv2.warpAffine, вы можете просто вызвать translate функцию imutils.

Изменение размера

Изменение размера изображения в OpenCV осуществляется путем вызова cv2.resizeфункции. Тем не менее, необходимо соблюдать особую осторожность, чтобы гарантировать, что соотношение сторон сохраняется. Эта resize функция imutils сохраняет пропорцию и обеспечивает именованные аргументы, width и height поэтому изображение может быть изменено до предполагаемой ширины / высот, в то время как (1) поддержание соотношения сторон и (2) обеспечение размеров изображения не должна быть явно вычислено разработчик.

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

Скелетирование

Скелетонизация - это процесс построения «топологического скелета» объекта на изображении, где объект считается белым на черном фоне. OpenCV не предоставляет функции для явного построения каркаса, но предоставляет морфологические и двоичные функции для этого.

Для удобства skeletonize функцию imutils можно использовать для построения топологического каркаса изображения.

Первый аргумент, size это размер ядра структурирующего элемента. Необязательный аргумент, structuring может использоваться для управления элементом структурирования - по умолчанию используется cv2.MORPH_RECT, но может быть любым допустимым элементом структурирования.

Библиотека Numpy

NumPy это open-source модуль для python, который предоставляет общие математические и числовые операции в виде пре-скомпилированных, быстрых функций. Они объединяются в высокоуровневые пакеты. Они обеспечивают функционал, который можно сравнить с функционалом MatLab. NumPy (Numeric Python) предоставляет базовые методы для манипуляции с большими массивами и матрицами. SciPy (Scientific Python) расширяет функционал numpy огромной коллекцией полезных алгоритмов, таких как минимизация, преобразование Фурье, регрессия, и другие прикладные математические техники.

Библиотека Keras

Keras — это очень удобная высокоуровневая библиотека для глубокого обучения, работающая поверх theano или tensorflow. В ее основе лежат слои, из которых получаются модели. Созданные однажды модели и слои сохраняют в себе свои внутренние параметры. Это позволяет обучить слои в одной модели, а использовать его уже в другой, что очень удобно.

Модели Keras легко сохранять/загружать, у них простой, но в тоже время, глубоко настраиваемый процесс обучения; модели свободно встраиваются в tensorflow или theano код.

Библиотека TensorFlow

TensorFlow — открытая программная библиотека для машинного обучения, разработанная компанией Google для решения задач построения, моделирования и тренировки искусственных нейронных сетей с целью автоматического нахождения и классификации или распознавании образов, достигая качества человеческого восприятия. Применяется во многих областях в том числе для исследований, и для разработки собственных продуктов Google.

TensorBoard — это python пакет, созданный в помощь TensorFlow, который позволяет визуализировать параметры работы сети, выстроенной в TensorFlow. Скриншот интерфейса TensorBoard изображен на рисунке 3.1.

Рисунок 3.1 — Скриншот интерфейса TensorBoard


Поделиться с друзьями:

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.038 с.