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

С сотнями вопросов о том, как начать работу с Python для DS на различных форумах, этот пост (и серия видео) - моя попытка решить все эти вопросы.

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

Итак, вот основы, которые помогут вам в программировании на Python.

Прежде чем мы углубимся в основы, убедитесь, что вы настроили среду Python и знаете, как использовать блокнот Jupyter (необязательно).

Базовый курс обучения Python можно разбить на 4 основные темы, которые включают:

  1. Типы данных (int, float, strings)
  2. Составные структуры данных (списки, кортежи и словари)
  3. Условные выражения, циклы и функции
  4. Объектно-ориентированное программирование и использование внешних библиотек

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

1. Типы и структуры данных

Самый первый шаг - понять, как Python интерпретирует данные.

Начиная с широко используемых типов данных, вы должны быть знакомы с целыми числами (int), float (float), строками (str) и логическими значениями (bool). Вот что вам следует практиковать.

Тип, приведение типов и функции ввода-вывода:

  • Изучение типа данных с помощью type()метода.
type('Harshit')

# output: str
  • Сохранение значений в переменных и функциях ввода-вывода ( a = 5.67)
  • Приведение типов - преобразование определенного типа переменной / данных в другой тип, если это возможно. Например, преобразование строки целых чисел в целое число:
astring = "55"
print(type(astring))

# output: <class 'str'>
astring = int(astring)
print(type(astring))

# output: <class 'int64'>

Но если вы попытаетесь преобразовать буквенно-цифровую или алфавитную строку в целое число, это выдаст ошибку:

Когда вы ознакомитесь с основными типами данных и их использованием, вы должны узнать об арифметических операторах и вычислениях выражений (DMAS) и о том, как сохранить результат в переменной для дальнейшего использования.

answer = 43 + 56 / 14 - 9 * 2
print(answer)

# output: 29.0

Струны:

Знание того, как работать с текстовыми данными и их операторами, пригодится при работе со строковыми данными. Практикуйте эти концепции:

  • Объединение строк с использованием +
  • Нарезка и соединение строки с использованием split()и join()метод
  • Изменение регистра строки , используя lower()и upper()методы
  • Работа с подстроками строки

Вот блокнот, который охватывает все обсуждаемые вопросы.

2. Составные структуры данных (списки, кортежи и словари)

Списки и кортежи (составные типы данных):

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

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

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

  • Как несколько типов данных могут храниться в списке Python.
  • Индексирование и нарезка для доступа к определенному элементу или подсписку списка.
  • Вспомогательные методы для сортировки, обращения, удаления элементов, копирования и добавления .
  • Вложенные списки - списки, содержащие списки. Например, [1,2,3, [10,11]].
  • Дополнение в списке.
alist + alist

# output: ['harshit', 2, 5.5, 10, [1, 2, 3], 'harshit', 2, 5.5, 10, [1, 2, 3]]

Умножение списка на скаляр:

alist * 2

# output: ['harshit', 2, 5.5, 10, [1, 2, 3], 'harshit', 2, 5.5, 10, [1, 2, 3]]

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

Концепции, на которых следует сосредоточиться:

  • Индексирование и нарезка (аналогично спискам).
  • Вложенные кортежи.
  • Добавление кортежей и вспомогательных методов, таких как count()и index().

Словари

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

Для доступа к элементу необходимо передать ключ в квадратных скобках.

Концепции, на которых следует сосредоточиться:

  • Итерации по словарю (также покрытые циклами).
  • Использование методов хелперов нравится get(), pop(), items(), keys(), update(), и так далее.

Записную книжку по вышеуказанным темам можно найти здесь .

3. Условные выражения, циклы и функции

Условия и ветвление

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

x = True

ptint(type(x))

# output: <class bool>
print(1 == 2)

# output: False

За сравнением на изображении нужно внимательно следить, поскольку люди путают оператор присваивания ( =) с оператором сравнения ( ==).

Логические операторы (or, and, not)

Они используются для совместной оценки сложных утверждений.

  • or - Одно из многих сравнений должно быть верным, чтобы все условие было истинным.
  • and - Все сравнения должны быть верными, чтобы все условие было истинным.
  • not - Проверяет противоположность указанного сравнения.
score = 76
percentile = 83

if score > 75 or percentile > 90:
    print("Admission successful!")
else:
    print("Try again next year")
    
# output: Try again next year

Понятия для изучения:

  • if, elseи elifоператоры для построения вашего условия.
  • Проведение сложных сравнений в одном условии.
  • Помните об отступах при написании вложенных операторов if/ else.
  • Используя логические, in, isи notоператор.

Петли

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

Сфокусироваться на чем-либо:

  • range()Функции и итерация через последовательность с помощью forпетли.
  • while петли
age = [12,43,45,10]
i = 0
while i < len(age):
    if age[i] >= 18:
        print("Adult")
    else:
        print("Juvenile")
    i += 1

# output: 
# Juvenile
# Adult
# Adult
# Juvenile
  • Перебор списков и добавление (или любая другая задача с элементами списка) элементов в определенном порядке
cubes = []
for i in range(1,10):
    cubes.append(i ** 3)
print(cubes)

#output: [1, 8, 27, 64, 125, 216, 343, 512, 729]
  • Используя break, passи continueключевые слова.

Понимание списка

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

Например, вы можете создать список из 9 кубиков, как показано в примере выше, с использованием понимания списка.

# list comprehension
cubes = [n** 3 for n in range(1,10)]
print(cubes)

# output: [1, 8, 27, 64, 125, 216, 343, 512, 729]

Функции

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

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

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

Python использует отступы для создания блоков кода. Это пример функции:

def add_two_numbers(a, b):
    sum = a + b
    return sum

Мы определяем функцию, используя defключевое слово, за которым следует имя функции и аргументы (ввод) в круглых скобках, за которыми следует двоеточие.

Тело функции - это блок кода с отступом, а результат возвращается с returnключевым словом.

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

Больше примеров и подробностей здесь .

4. Объектно-ориентированное программирование и использование внешних библиотек.

Мы использовали вспомогательные методы для списков, словарей и других типов данных, но откуда они берутся?

Когда мы говорим list или dict, мы фактически взаимодействуем с объектом класса списка или объектом класса dict. Печать типа объекта словаря покажет вам, что это объект класса dict.

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

Объекты являются экземпляром класса и определяются как инкапсуляция переменных (данных) и функций в единую сущность. У них есть доступ к переменным (атрибутам) и методам (функциям) из классов.

Теперь вопрос в том, можем ли мы создавать наши собственные классы и объекты? Ответ ДА.

Вот как вы определяете класс и его объект:

class Rectangle:
    
    def __init__(self, height, width):
        self.height = height
        self.width = width
    
    def area(self):
        area = self.height * self.width
        return area

rect1 = Rectangle(12, 10)

print(type(rect1))

# output: <class '__main__.Rectangle'>

Затем вы можете получить доступ к атрибутам и методам с помощью оператора точка (.).

Использование внешних библиотек / модулей

Одна из основных причин использовать Python для науки о данных - это замечательное сообщество, которое разрабатывает высококачественные пакеты для различных областей и задач. Использование внешних библиотек и модулей - неотъемлемая часть работы над проектами на Python.

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

Вам следует научиться:

  • Импортируйте библиотеки в свое рабочее пространство
  • Использование helpфункции для изучения библиотеки или функции
  • Непосредственный импорт необходимой функции.
  • Как читать документацию по известным пакетам, таким как pandas, numpy и sklearn, и использовать их в своих проектах

Заворачивать

Это должно охватывать основы Python и помочь вам начать заниматься наукой о данных.

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

https://www.freecodecamp.org/news/python-fundamentals-for-data-science/