Я был инженером-программистом и специалистом по данным, и каждый раз я выбираю Python!

Me

Ни для кого не секрет, что Python — феноменальный язык программирования, который за годы работы приобрел большое количество поклонников. Его уникальный синтаксис и библиотеки поставили его на пьедестал на рынке разработки программного обеспечения, но основной причиной широкого использования Python является его надежность. Огромные компании, такие как NASA, Google, Netflix и другие, так или иначе используют Python. YouTube, вероятно, является наиболее впечатляющим использованием языка, поскольку он используется для администрирования видео, управления шаблонами сайта и обработки канонических данных. Python предлагает ряд библиотек, которые позволяют разработчикам легко реализовывать функции и включать код других разработчиков. Кроме того, для языка доступно множество документации и ресурсов.

Python для веб-разработки

Я не стесняюсь экспериментировать и пробовать что-то новое. Поэтому для моего последнего проекта в университете я принял решение разработать веб-приложение и мобильное приложение с использованием Python и Java соответственно. Учитывая тот факт, что Python не входил в нашу учебную программу, а у меня не было опыта использования этого языка, это было довольно рискованное решение. Одна вещь, которую я знал, заключалась в том, что у Python есть много документации и онлайн-ресурсов (учебники на YouTube и StackOverflow), поэтому с моей настойчивостью и решимостью я могу заставить свой проект работать.

Моя идея состояла в том, чтобы разработать систему управления записями о донорстве крови — веб-приложение для сотрудника, чтобы облегчить донорство, и мобильное приложение для донора, чтобы иметь доступ к своим записям о донорстве. Будучи студентом, прошедшим курс управления проектами, у меня была довольно впечатляющая методология для этого, план состоял в том, чтобы полностью погрузиться в веб-приложение, поскольку это была более сложная задача — у меня были предварительные знания Java для мобильного приложения — так что это был прав, я начал с разработки веб-приложения с использованием Python. Я большой поклонник подхода JUST START к созданию чего-либо, поэтому я начал искать учебные пособия на YouTube о создании веб-приложений с использованием Python. Первой дилеммой, с которой я столкнулся, был выбор используемого фреймворка — основными фреймворками для веб-разработки являются Django и Flask — поэтому я выбрал Django. Почему? Потому что это звучало круто. Также на YouTube был полноценный плейлист о том, как разработать веб-приложение с помощью Django — S/O to Corey Schafer. Так я начал свой путь разработчика Python. Мой интерес достиг пика, когда я узнал больше о фреймворке Django, давайте немного углубимся в технические детали…

Моим первым впечатлением о Django было то, как вы можете закодировать свою внутреннюю функциональность. Для моего проекта нужен как минимум донор и штатный сотрудник. Это два типа пользователей, а это означает, что вам придется учитывать это в своей базе данных/бэкенде.

Если вы знакомы с ООП, приведенный выше блок кода должен дать вам представление о том, что он делает, или, по крайней мере, о слове AbstractUser. Приведенный выше код является абстрактным классом, поскольку существует два типа пользователей (донор и персонал) и характеристики/атрибуты пользователя.

Этот код находится внутри файла с именем models.py и предоставляет механизм для создания, обновления, удаления и запроса записей из базы данных. Это определяет структуру данных приложения. Благодаря этой структуре Django предлагает простое использование форм, аутентификацию пользователей и разрешения, а также сериализацию данных для API.

Форма регистрации пользователя будет выглядеть примерно так: UserCreationForm — это форма из среды аутентификации Django. Этот код просто указывает, что указанные поля формы являются обязательными. По своей сути эта форма будет проверять поля электронной почты и пароля на основе отраслевых стандартов.

Сгенерированная форма будет выглядеть следующим образом, что позволит пользователю зарегистрироваться, заполнив необходимые поля.

Код ниже — это функция, которая обрабатывает форму при ее отправке. Он просто проверяет метод HTTP и проверяет, прошла ли форма все проверки, а затем очищает данные перед сохранением в базе данных.

Для полного обзора того, как эти файлы взаимосвязаны, см. Введение в Django.

Python для науки о данных

Наука о данных — интересная дисциплина, поскольку ее часто неверно истолковывают. Таким образом, наука о данных сама по себе является просто областью исследования и представляет собой зонтик, в который входят такие области, как визуализация данных, обработка данных, интеллектуальный анализ данных и моделирование данных.

Python для машинного обучения

Машинное обучение (МО), как подробнее объясняется здесь — Искусственный интеллект 101 — это программирование компьютеров для обучения без явного программирования. Python делает это забавным и интригующим, предоставляя библиотеки, которые делают всю работу за вас. Само ML можно разделить на контролируемое и неконтролируемое. Они говорят сами за себя, контролируемое машинное обучение — это когда алгоритмы/модели учатся на так называемом обучающем наборе данных. Неконтролируемое машинное обучение обучается без вмешательства человека. Давайте сосредоточимся на контролируемом машинном обучении, в частности, на его подкатегории под названием Классификация. Классификация пытается сделать вывод на основе наблюдаемых значений. При построении модели классификации нам необходимо иметь обучающий набор данных, содержащий точки данных и соответствующие метки.

Общий процесс обучения классификатора включает:

  • Выбор библиотеки или модуля (например, sklearn)
  • Импорт набора данных
  • Разделите набор данных на обучающие и тестовые данные
  • Построить модель
  • Оцените модель и ее точность.

Скажем, вы хотите обучить модель прогнозировать, будет ли завтра дождь, используя исторические данные о погоде. pandas — это библиотека для работы с данными, а NumPy — для работы с многомерными массивами и матрицами. sklearn (Scikit-learn) — это библиотека, в которой представлены различные алгоритмы классификации, регрессии и кластеризации.

С помощью pandas мы считываем данные из файла weather.csv в переменную набора данных и конвертируем набор данных в переменные индикатора. Цикл for заменяет значения N/A средним значением. В переменной X хранится набор данных с удаленным «RainTomorrow», а в переменной y хранятся все значения «RainTomorrow». Затем мы используем метод train_test_split(), чтобы разделить переменные X и y на подмножества обучения и тестирования. GradeintBoostingClassifier() — это алгоритм классификации, который мы используем для нашей модели. Наконец, мы обучаем модель с помощью метода fit() нашего классификатора и сохраняем прогнозы в переменной y_pred. Мы можем распечатать результаты нашей модели, используя методы классификация_отчет() и точность_оценки().

Python для парсинга веб-страниц

Веб-скрапинг, как следует из названия, — это сбор данных из Интернета. Допустим, вы хотите извлечь/очистить цены на все видеокарты с определенного веб-сайта и сохранить информацию о графических картах в локальном файле, у Python есть несколько хитростей для таких случаев. Python предлагает библиотеки парсинга веб-страниц, такие как BeautifulSoup и Selenium. В приведенном ниже примере я использовал Beautiful Soup для извлечения графических карт, которые продаются на newegg.com.

Начиная сверху, я использую библиотеку urllib от Python. Эта библиотека позволяет нам обрабатывать URL-адреса (открывать и закрывать их). Затем я импортирую BeautifulSoup, это позволит нам анализировать страницы HTML или XML. Большая часть приведенного выше кода объясняется комментариями, а остальная часть кода сохраняет данные графической карты в переменные и распечатывает их. Приведенный выше файл можно дополнительно изменить, чтобы он запускался в определенное время и определял, снизились или увеличились цены на графические карты. С веб-скрапингом вы можете сделать еще больше и объединить свои «скрапы» с машинным обучением, чтобы делать прогнозы или классификации с использованием контролируемых или неконтролируемых моделей.

Питон для развлечения

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

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

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

Первоначально опубликовано на http://techevangelist.co.za 20 ноября 2021 г.