На практических примерах

В этом посте мы хотели бы поделиться с вами 10 полезными советами и приемами Python для начинающих.

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

Из этого руководства для начинающих вы научитесь:

  • строки формата
  • использовать перечислить, отсортированные функции
  • вернуть несколько значений из функции
  • использовать лямбда-выражение, понимание списка
  • Еще больше!

Если вы хотите сделать кодирование Python более эффективным, не пропустите эти советы / рекомендации!

Давай начнем.

Совет №1: методы и функции отображения

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

Как мы узнаем доступные методы / функции для объекта Python?

Первый совет Python для новичков - это два быстрых способа сделать это.

Метод # 1: функция автозавершения кода

Многие IDE (интегрированная среда разработки) или приложения для редактирования кода для Python могут автоматически заполнять код во время набора текста. Эта функция полезна для ускорения программирования.

Например, в Jupyter Notebook вы можете ввести несколько первых символов функции / файлов и т. Д., А затем нажать клавишу Tab, чтобы заполнить оставшуюся часть элемента. На снимке экрана ниже показаны доступные варианты автозаполнения, которые начинаются с буквы «p».

Метод # 2: функция dir

Функция dir возвращает список допустимых атрибутов объекта в своем аргументе, что означает, что мы можем использовать его для возврата методов объекта.

Например, давайте запустим приведенный ниже код Python, чтобы применить dir к строковому объекту.

Это вернет длинный список имен.

Игнорируя эти специальные методы с ‘__’ в начале списка, вы можете найти интересные методы, такие как использование заглавных букв, поиск и уменьшение.

['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

Примечание: dir предоставляет только интересный набор имен, а не полный список. Но это удобно, когда вы не можете вспомнить известный вам метод.
Помимо dir, вы также можете попробовать функцию help. Например, help (str) распечатает страницу справки для строкового объекта, которая содержит больше деталей о методах, чем dir.

Совет № 2: Форматирование строк

Распечатка строк - обычная задача в проектах по науке о данных. Метод format для str может объединять несколько переменных и строк и форматировать их определенным образом.

Давайте посмотрим на пример.

Мы определим три переменные: цена, заплачено и изменение (= заплачено - цена). Что, если мы хотим распечатать полное предложение, содержащее эти переменные, в формате долларов?

Мы можем использовать метод форматирования, как показано ниже.

The item cost $11.29. I paid $20.00. I received $8.71 in change

Совет № 3: функция перечисления

При итерации по объекту, например, списку, словарю или файлу, enumerate является полезной функцией. Функция возвращает кортеж, содержащий как значения, полученные в результате итерации по объекту, так и счетчик цикла (с начальной позиции 0). Счетчик циклов особенно удобен, когда вы хотите написать код на основе индекса.

Давайте посмотрим на пример, в котором мы можем сделать что-то особенное для первого и последнего элементов.

Мы напечатали строки, обозначающие первый и последний элемент, удобно с enumerate.

0: J
The first element!
1: u
2: s
3: t
4:  
5: I
6: n
7: t
8: o
9:  
10: D
11: a
12: t
13: a
The last element!

Функцию перечисления также можно использовать для файлов.

В приведенном ниже примере мы можем распечатать первые 10 строк файла csv перед выходом из цикла. Мы не будем копировать результат сюда, так как он слишком длинный. Но вы можете попробовать это с любыми файлами, которые у вас есть.

Совет № 4: возвращайте несколько значений в функции

При определении функций мы часто хотим вернуть более одного значения. В этом совете / приеме Python мы рассмотрим три распространенных метода ниже.

Метод №1: вернуть кортеж

Сначала рассмотрим наиболее удобный способ: вернуть кортеж. Обычно мы используем этот метод только в том случае, если нужно вернуть 2 или 3 значения. Когда количество значений больше, легко забыть о порядке значений в кортеже.

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

Если мы вызовем функцию со значением 0, вы увидите, что функция возвращает кортеж с двумя значениями: «Jane» и «Doe».

first_name: Jane, last_name: Doe

Это здорово, но что нам делать, когда нужно вернуть больше значений?

Перейдем к следующему способу.

Метод № 2: вернуть словарь

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

Пример ниже аналогичен предыдущему. Но мы просим функцию вернуть словарь.

Мы можем вызвать функцию с id_num = 0. Имея результат в виде словаря, легче вызвать конкретное значение с его ключом.

first_name: Jane,
last_name: Doe,
title: Data Scientist,
department: A,
date_joined: 20190808

Метод № 3: вернуть NamedTuple

Последний способ, который мы обсудим, - это возврат именованного кортежа. Именованные кортежи - это кортежи с именованными полями. Они неизменяемы, как кортежи, но также обеспечивают именование, как словари.

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

Документы Python

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

Давайте посмотрим на пример именованного кортежа.

Мы должны определить объект namedtuple перед его использованием. В приведенном ниже коде мы создали объект namedtuple с именем Employee, а затем использовали его для хранения значений.

Мы можем снова вызвать функцию с id_num = 0, чтобы вернуть именованный кортеж.

first_name: Jane,
last_name: Doe,
title: Data Scientist,
department: A,
date_joined: 20190808

Мы также можем дважды проверить тип переменной возвращаемого объекта, которым является Employee namedtuple, определенный ранее.

__main__.Employee

Совет 5: лямбда-выражение

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

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

Оба метода возвращают тот же результат ниже.

0     first
1    second
2     third
3     first
4     third
5     first
Name: address, dtype: object

Совет № 6: Отсортированная функция

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

Сортировать списки

Давайте посмотрим на простой пример списка, использующего функцию сортировки.

[1, 3, 5, 5, 8, 9]

Примечание: есть также метод list.sort (), но мы предпочитаем сортировку, поскольку он более общий и создает новый список. Смотрите более подробные сравнения в документации Python.

Сортировать словари

Для словарей сортировка немного сложнее, так как есть ключи и значения.

Мы можем применить отсортированную функцию непосредственно к словарю, который отсортирует ключи словаря.

['A', 'B', 'G', 'Q', 'T']

Или отсортируйте значения словарей, как показано ниже.

[0, 3, 7, 8, 9]

Или отсортируйте словари целиком по их ключам или значениям в приведенном ниже коде Python.

{'A': 9, 'B': 8, 'G': 0, 'Q': 7, 'T': 3}
{'G': 0, 'T': 3, 'Q': 7, 'B': 8, 'A': 9}

Совет № 7: Условные выражения

Если вы изучили основы Python, вы должны быть знакомы с операторами if-else. Когда логика проста, мы также можем использовать условное выражение (или тернарный оператор) в одной строке.

Давайте посмотрим на пример, основанный на приведенной ниже логической переменной is_raining.

В приведенном ниже коде Python показан традиционный способ сделать это.

Stay at home

Тем не менее, мы также можем использовать приведенное ниже выражение. Это намного короче!

Выражение x if C else y сначала оценивает условие C, а не x. Если C истинно, вычисляется x и возвращается его значение; в противном случае y вычисляется и возвращается его значение.

Документы Python

Совет № 8: составьте список понятий

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

Составление списка состоит из скобок, содержащих выражение, за которым следует предложение for, а затем ноль или более предложений for или if. Результатом будет новый список, полученный в результате оценки выражения в контексте следующих за ним предложений for и if.

Документы Python

В примере показано, как использовать его для подсчета длины слов в строке и присвоения результата в виде списка.

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

[3, 3, 3, 3, 6, 2, 3, 3, 3, 2, 5, 2, 2, 3, 2, 3, 5, 3, 4, 5, 5, 3, 4, 1, 3, 5, 4, 6, 2, 3, 6, 2, 4, 3, 1, 5, 4, 1, 4, 2, 3, 9, 2, 4, 3, 3, 2, 2, 3, 3, 3, 4, 2, 4, 5, 2, 2, 3, 2, 3, 6, 2, 3, 7, 2, 4, 2, 3, 2, 5, 2, 3, 2, 4, 4, 4, 4, 3, 2, 3, 3, 4, 3, 3, 3, 6, 4]

Совет № 9: Все / Любые функции

Мы также хотели бы охватить функции all и any в Python. Они удобны при множественных сравнениях.

Функция any возвращает True, если какой-либо элемент итеративного объекта истинен. В приведенном ниже примере показано, как это упрощает кодирование.

Toronto, Ontario

Точно так же функция all возвращает True, если все элементы итерируемого объекта истинны (или если итерируемый объект пуст). Ниже приведен пример для сравнения функции all и обычного метода.

Just Into Data

Совет № 10: используйте виртуальные среды

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

Какие виртуальные среды для Python?

Виртуальная среда - это среда Python, в которой интерпретатор Python, библиотеки и сценарии, установленные в ней, изолированы от тех, что установлены в других виртуальных средах, и (по умолчанию) любые библиотеки, установленные в «системном» Python, т. Е. Той, которая установлена как часть вашей операционной системы.

Документы Python

Вы можете создавать виртуальные среды и управлять ими с помощью таких инструментов, как Anaconda (conda environments), virtualenv, pipenv.

Виртуальные среды позволяют использовать разные среды Python для каждого проекта, поэтому мы можем использовать разные версии Python и / или наборы библиотек.

Например, предположим, что мы использовали plotly версии 3 для создания диаграмм в проекте. Через несколько месяцев вышла четвертая версия plotly с новыми функциями. Поскольку код проекта хорошо работал в производственной среде, мы готовы продолжать использовать Plotly версии 3. Но для любых новых проектов мы хотели бы использовать новые функции в Plotly версии 4.

В этой ситуации мы можем создать две виртуальные среды с plotly v3 и v4 отдельно и использовать их для старого и нового проектов.

Проблемы решены!

Вот и все! Надеюсь, вы нашли эти советы и рекомендации по Python для начинающих полезными.

Какой совет из этого поста вы хотите попробовать в первую очередь?

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

Связанные ресурсы:

Для новичков в Python, ознакомьтесь с нашими руководствами по pandas и numpy, чтобы продолжить обучение:





Или ознакомьтесь с другими нашими недавними статьями по науке о данных для начинающих:





Чтобы получать больше полезных статей о данных, подпишитесь на нашу рассылку!