1. Основы синтаксиса Python и работа с массивами в библиотеке NumPy
Основы синтаксиса Python и работа с массивами в библиотеке NumPy
Добро пожаловать в курс «Python для Data Science и машинного обучения: от основ до моделей». Это первая статья нашего путешествия, в котором мы пройдем путь от написания первой строчки кода до создания сложных предсказательных моделей.
Data Science (наука о данных) — это не просто модное словосочетание, это набор инструментов, позволяющих извлекать знания из хаоса информации. И главным инструментом в руках современного специалиста является язык программирования Python.
Почему Python? Он прост в изучении, лаконичен и обладает огромной экосистемой библиотек, специально созданных для работы с данными. Сегодня мы заложим фундамент: разберем базовый синтаксис языка и познакомимся с библиотекой NumPy — сердцем вычислительной математики в Python.
Основы синтаксиса Python
Если вы никогда не программировали раньше, не пугайтесь. Python читается почти как обычный английский текст. Давайте разберем ключевые концепции, которые понадобятся нам для анализа данных.
Переменные и типы данных
Переменная — это именованная область памяти, где мы храним данные. В Python не нужно заранее объявлять тип переменной, язык сам поймет, что вы в него положили.
В Data Science мы чаще всего будем работать с числами (для расчетов) и строками (для категорий, например, названий городов).
Списки (Lists)
Список — это упорядоченная коллекция элементов. Это одна из самых часто используемых структур данных в базовом Python.
Списки в Python универсальны: в одном списке могут храниться и числа, и строки, и даже другие списки. Однако эта гибкость имеет свою цену — скорость работы. Для обработки миллионов записей стандартные списки Python слишком медленны.
Управляющие конструкции
Чтобы писать логику, нам нужны условия и циклы.
Условный оператор if:
Цикл for:
Используется для перебора элементов (например, нашего списка цен).
Функции
Функция — это блок кода, который можно использовать многократно. В Data Science мы часто пишем функции для предобработки данных.
Библиотека NumPy: зачем она нужна?
Вы можете спросить: «Зачем нам что-то еще, если у нас уже есть списки?». Представьте, что у вас есть два списка по миллиону чисел, и вы хотите поэлементно сложить их. В чистом Python вам пришлось бы писать цикл, который миллион раз берет числа и складывает их. Это долго.
Здесь на сцену выходит NumPy (Numerical Python). Это библиотека, написанная на языке C, которая работает внутри Python. Она предоставляет объект array (массив), который работает в десятки и сотни раз быстрее стандартных списков.
Установка и импорт
В среде Google Colab или Anaconda библиотека NumPy уже установлена. Чтобы начать с ней работать, ее нужно импортировать. Общепринятый стандарт — давать ей псевдоним np.
Создание массивов NumPy
Основной объект NumPy — это ndarray (n-dimensional array, n-мерный массив). Давайте создадим наш первый массив.
Из списка
Генерация данных
NumPy имеет встроенные функции для быстрой генерации массивов:
Векторизация и математические операции
Самая мощная фишка NumPy — векторизация. Это способность выполнять операции над всем массивом сразу, без использования циклов for.
Допустим, мы хотим умножить каждое число в массиве на 2.
В чистом Python:
В NumPy:
Это работает и для сложения двух массивов. Математически это выглядит как сложение двух векторов:
Где — результирующий вектор (массив), — первый массив, а — второй массив. Операция происходит поэлементно: первый элемент складывается с первым, второй со вторым и так далее.
Основные статистики
Data Science невозможна без статистики. NumPy умеет считать все базовые метрики мгновенно.
Предположим, у нас есть массив данных о росте группы людей:
Мы можем найти среднее значение. Формула среднего арифметического выглядит так:
Где — среднее значение, — количество элементов в выборке, — знак суммирования, а — каждый отдельный элемент массива.
В коде это всего одна команда:
Другие полезные методы:
* np.min(arr) — минимальное значение
* np.max(arr) — максимальное значение
* np.sum(arr) — сумма всех элементов
Индексация и срезы (Slicing)
Работа с индексами в NumPy похожа на списки Python, но с большими возможностями, особенно для многомерных массивов (матриц).
Логическая индексация (Маски)
Это очень важный инструмент для фильтрации данных. Допустим, мы хотим найти все значения в массиве, которые больше 25.
Многомерные массивы (Матрицы)
В Data Science мы редко работаем с одномерными строками. Обычно данные представлены в виде таблиц (строки и столбцы). В NumPy это двумерные массивы.
Доступ к элементам матрицы осуществляется через запятую: matrix[строка, столбец].
Заключение
Сегодня мы сделали первый шаг в мир Data Science. Мы изучили:
NumPy — это фундамент. В следующей статье мы построим на этом фундаменте стены — изучим библиотеку Pandas, которая позволяет работать с данными так же удобно, как в Excel, но с мощью программирования.