Автор оригинала: FreeCodeCapm Team.
от Yk Sugi
Если вы думаете о том, чтобы изучить Python – или если вы недавно начали изучать его – вы можете спросить себя:
Ну, это сложный вопрос, потому что есть так много приложений для Python.
Но со временем я заметил, что есть 3 основных популярных приложения для Python:
- Веб-разработка
- Наука данных – включая машинное обучение, анализ данных и визуализация данных
- Скрипты
Давайте поговорим о каждом из них в свою очередь.
Веб-разработка
Веб-каркасы, основанные на Python, как Джанго и Колбу Недавно стали очень популярными для веб-разработки.
Эти веб-каркасы помогут вам создать код Server-Side (Backend Code) в Python. Это код, который работает на вашем сервере, в отличие от устройств и браузеров пользователей (передний код). Если вы не знакомы с разницей между кодом Backend и Front-End, пожалуйста, смотрите мою сноску ниже.
Но подождите, почему мне нужна веб-каркас?
Это потому, что веб-каркас облегчает создание общей логики Backend. Это включает в себя отображение различных URL-адресов к кускам кода Python, имея дело с базами данных, и генерируя пользователи HTML-файлов, которые видят на их браузерах.
Какой веб-каркас Python я должен использовать?
Django и Flask – это два из самых популярных веб-каркасов Python. Я бы порекомендовал использовать один из них, если вы просто начинаете.
В чем разница между Джанго и колбой?
Там есть Отличная статья Об этой теме Gareth Dwyer, так что позвольте мне цитировать здесь:
<Начало кво TE>
Основные контрасты:
- Флэк обеспечивает простоту, гибкость и мелкозернистый контроль. Он не определяется (он позволяет решить, как вы хотите реализовать вещи).
- Django предоставляет всеобъемлющий опыт: вы получаете панель администратора, интерфейсы баз данных, ORM [Объектно-реляционное отображение] И структура каталогов для ваших приложений и проектов из коробки.
Вы, вероятно, должны выбрать:
- Флэк, если вы сосредоточены на возможности опыта и обучения, или если вы хотите больше контроля о том, какие компоненты использовать (например, какие базы данных, которые вы хотите использовать и как вы хотите взаимодействовать с ними).
- Django, если вы сосредоточены на конечном продукте. Особенно, если вы работаете над прямолинейным применением, таким как сайт новостей, электронный магазин или блог, и вы хотите, чтобы он всегда был один, очевидный способ сделать вещи.
TE>
Другими словами, если вы начинаете, колба, вероятно, является лучшим выбором, потому что у него есть меньше компонентов для решения. Кроме того, колба является лучшим выбором, если вы хотите больше настроить.
С другой стороны, если вы хотите построить что-то прямо вперед, Django, вероятно, позволит вам добраться туда быстрее.
Теперь, если вы хотите учиться Django, я рекомендую книгу под названием Django для начинающих. Вы можете найти это здесь Отказ
Вы также можете найти бесплатные образцы главы этой книги здесь Отказ
Хорошо, пойдем на следующую тему!
Наука данных – включая машинное обучение, анализ данных и визуализация данных
Прежде всего, давайте рассмотрим, какое оборудование машины.
Я думаю, что лучший способ объяснить, какое обучение машины было бы простым примером.
Допустим, вы хотите разработать программу, которая автоматически обнаруживает, что на картинке.
Итак, учитывая эту картину ниже (рисунок 1), вы хотите, чтобы ваша программа распознает, что это собака.
Учитывая это другое ниже (изображение 2), вы хотите, чтобы ваша программа распознает, что это таблица.
Вы можете сказать, ну, я могу просто написать какой-то код, чтобы сделать это. Например, может быть, если на картинке много светло-коричневых пикселей, то мы можем сказать, что это собака.
Или, может быть, вы можете выяснить, как обнаружить края на картинке. Тогда вы можете сказать, если есть много прямых ребер, то это таблица.
Тем не менее, этот вид подход быстро становится сложнее. Что если есть белая собака на картинке без каштановых волос? Что, если на картинке показаны только круглые части стола?
Вот где приходит обучение машины.
Машинное обучение обычно реализует алгоритм, который автоматически определяет шаблон в данном входе.
Вы можете дать, скажем, 1000 фотографий собаки и 1000 фотографий стола к алгоритму машинного обучения. Затем он узнает разницу между собакой и столом. Когда вы даете ей новую картину собаки или стола, он сможет распознать, какой из них это.
Я думаю, что это несколько похоже на то, как ребенок узнает новые вещи. Как ребенок узнает, что одна вещь выглядит как собака и еще один стол? Возможно из кучки примеров.
Вы, вероятно, не явно не рассказываете ребенка: «Если что-то пушистое и имеет светло-коричневые волосы, то это, наверное, собака».
Вы, вероятно, просто скажете, – это собака. Это тоже собака. И этот это столик. Это тоже столик.
Алгоритмы обучения машины работают много так же.
Вы можете применить ту же идею:
- Системы рекомендаций (думайте, что YouTube, Amazon и Netflix)
- распознавание лица
- распознавание голоса
среди других приложений.
Популярные алгоритмы обучения машины Вы могли бы услышать о включении:
- Нейронные сети
- Глубокое обучение
- Поддержка векторных машин
- Случайный лес
Вы можете использовать любой из вышеперечисленных алгоритмов для решения проблемы маркировки изображений, который я объяснил ранее.
Python для машинного обучения
Есть популярные библиотеки обучения машин и рамки для Python.
Два из самых популярных из них Scikit – Учите и Tensorflow Отказ
- Scikit-Learn поставляется с некоторыми из более популярных встроенных алгоритмов машинного обучения. Я упомянул некоторые из них выше.
- Tensorflow – это больше низкоуровневой библиотеки, которая позволяет создавать пользовательские алгоритмы обучения машины.
Если вы просто начинаете с проекта машинного обучения, я бы порекомендовал вам сначала начать с Scikit-Suart. Если вы начнете работать в вопросах эффективности, я бы начал смотреть в Tensorflow.
Как я должен изучать машинное обучение?
Для изучения основных наук, я бы порекомендовал либо Стэнфорд или Кальтех Машинное обучение курса.
Обратите внимание, что вам нужно базовые знания исчисления и линейной алгебры, чтобы понять некоторые материалы в этих курсах.
Затем я бы практиковали то, что вы узнали из одного из этих курсов с Kaggle Отказ Это сайт, в котором люди конкурируют, чтобы построить лучший алгоритм обучения машины для данной проблемы. У них тоже хорошие учебники для начинающих.
Как насчет анализа данных и визуализации данных?
Чтобы помочь вам понять, что это может выглядеть, позвольте мне дать вам простой пример здесь.
Допустим, вы работаете на компанию, которая продает некоторые продукты в Интернете.
Затем, как аналитик данных, вы можете нарисовать бэрный график, как это.
С этого графика мы можем сказать, что мужчины купили более 400 единиц этого продукта, а женщины купили около 350 единиц этого продукта в этом конкретном воскресенье.
В качестве аналитика данных вы можете придумать несколько возможных объяснений для этой разницы.
Одним из очевидных возможных объяснений является то, что этот продукт более популярен с мужчинами, чем с женщинами. Другое возможное объяснение может быть то, что размер выборки слишком мал, и это различие было вызвано только случайным. И еще одно возможное объяснение может быть, что мужчины, как правило, покупают этот продукт больше только в воскресенье.
Чтобы понять, какие из этих объяснений правильно, вы можете нарисовать другой график, как этот.
Вместо того, чтобы показывать данные только в воскресенье, мы смотрим на данные на полную неделю. Как видите, с этого графика мы видим, что эта разница довольно последовательна в разные дни.
Из этого маленького анализа вы можете сделать вывод, что самым убедительным объяснением этого отличия является то, что этот продукт просто более популярен с мужчинами, чем с женщинами.
С другой стороны, что, если вы видите, как этот график вместо этого?
Тогда, что объясняет разницу в воскресенье?
Вы можете сказать, возможно, мужчины, как правило, покупают больше этого продукта только в воскресенье по какой-то причине. Или, возможно, это было просто совпадение, что мужчины покупали больше этого в воскресенье.
Таким образом, это упрощенный пример того, как может выглядеть анализ данных в реальном мире.
Анализ данных работает, когда я работал в Google, и Microsoft очень похоже на этот пример – только более сложный. Я на самом деле использовал Python в Google для такого рода анализа, в то время как я использовал JavaScript на Microsoft.
Я использовал SQL у обоих этих компаний, чтобы вытащить данные из наших баз данных. Затем я бы использовал Python и Matplotlib (в Google) или JavaScript и D3.js (в Microsoft) для визуализации и анализа этих данных.
Анализ/визуализация данных с Python
Одной из самых популярных библиотек для визуализации данных является Матплотлиб Отказ
Это хорошая библиотека для начала, потому что:
- Легко начать
- Некоторые другие библиотеки, такие как морской основан на этом. Итак, обучение MatPlotlib поможет вам узнать эти другие библиотеки позже.
Как я должен изучать анализ/визуализацию данных с Python?
Вы должны сначала изучать основы анализа данных и визуализации. Когда я искал хорошие ресурсы для этого онлайн, я не мог найти никого. Итак, я закончил сделать видео на YouTube на эту тему:
Я также закончил сделать Полный курс по этой теме на Pluralsight , который вы можете бесплатно предпринять, подписавшись на их 10-дневную бесплатную пробную версию.
Я бы порекомендовал оба они.
После изучения основ анализа данных и визуализации, изучение основ статистики со стороны веб-сайтов, таких как Coursera и Khan Academy, также будет полезным.
Скрипты
Что такое сценария?
Сценарии обычно относится к записи небольших программ, которые предназначены для автоматизации простых задач.
Итак, позвольте мне привести пример из моего личного опыта здесь.
Раньше я работал в небольшом запуске в Японии, где у нас была система поддержки электронной почты. Это была система для нас, чтобы ответить на вопросы, которые клиенты отправили нам по электронной почте.
Когда я работал там, у меня была задача подсчета количества электронных писем, содержащих определенные ключевые слова, чтобы мы могли проанализировать письма, которые мы получили.
Мы могли бы сделать это вручную, но вместо этого я написал простую программу/простой скрипт для автоматизации этой задачи.
На самом деле, мы использовали Ruby для этого, но Python также является хорошим языком для этой задачи. Python подходит для этого типа задачи в основном потому, что имеет относительно простой синтаксис и легко написать. Также быстро писать что-то маленькое и проверить его.
Как насчет встроенных приложений?
Я не эксперт по встраиваемым приложениям, но я знаю, что Python работает с rasbery pi. Похоже, популярное применение среди аппаратных хоббистов.
Как насчет игр?
Вы можете использовать библиотеку под названием PyGame для разработки игр, но это не самый популярный игровой двигатель. Вы можете использовать его, чтобы построить проект хобби, но я лично не выбрал бы его, если вы серьезно относитесь к развитию игры.
Скорее, я бы порекомендовал начать работу с Unity с C #, который является одним из самых популярных игровых двигателей. Это позволяет создавать игру для многих платформ, включая Mac, Windows, iOS и Android.
Как насчет настольных приложений?
Вы можете сделать один с Python, используя TKinter, но это не похоже на самый популярный выбор.
Вместо этого, похоже, такие языки, как Java, C #, и C ++ более популярны для этого.
Недавно некоторые компании начали использовать JavaScript для создания настольных приложений.
Например, настольное приложение Sll Slass было построено с чем-то под названием Electon Отказ Это позволяет создавать настольные приложения с помощью JavaScript.
Лично, если я строил настольное приложение, я бы пошел с опцией JavaScript. Это позволяет вам повторно использовать некоторый код из веб-версии, если у вас есть.
Тем не менее, я также не эксперт по настольным приложениям, поэтому, пожалуйста, дайте мне знать в комментарии, если вы не согласны или согласны со мной на этом.
Python 3 или Python 2?
Я бы порекомендовал Python 3, так как он более современный, и это более популярный вариант на данный момент.
Сноска: Примечание о заднем коде в виде переднего кода (на всякий случай, если вы не знакомы с условиями):
Допустим, вы хотите сделать что-то вроде Instagram.
Затем вам нужно будет создать код интерфейса для каждого типа устройства, который вы хотите поддержать.
Вы можете использовать, например:
- Свифт для iOS.
- Java для Android
- JavaScript для веб-браузеров
Каждый набор кода будет работать по каждому типу устройства/браузера. Это будет набор кода, который определяет, что будет похоже на компоновку приложения, как можно выглядеть, когда вы нажимаете их и т. Д.
Тем не менее, вам все равно понадобится возможность хранить информацию о пользователей и фотографиях. Вы захотите сохранить их на своем сервере, а не только на устройствах своих пользователей, чтобы подписчики каждого пользователя могут просматривать его/ее фотографии.
Это где находится код Backend Code/Server-Side. Вам нужно будет написать несколько бэкэндов, чтобы делать такие вещи, как:
- Следите за тем, кто следующий, кто
- Сжать фотографии, чтобы они не занимают столько места для хранения
- Рекомендовать фотографии и новые учетные записи каждому пользователю в Открытие характерная черта
Итак, это разница между кодом бэкэнда и передний кодом.
Кстати, Python не является единственным хорошим выбором для записи Backend/Server-Side Code. Есть много других популярных вариантов, включая Node.js, который основан на JavaScript.
Понравилась эта статья? Затем вам также может понравиться мой канал YouTube.
У меня есть программирование образования YouTube Channel называется CS Dojo с 440 000+ подписчиков, где я производим больше контента, как эта статья.
Например, вам могут понравиться эти видео: