Академический Документы
Профессиональный Документы
Культура Документы
Feature Engineering. 2 4
Возможности библиотеки Numpy
2 4
для работы с данными
Аналоги
Также задания можно выполнять в среде Google Colaboratory. Это облачный инструмент, аналогичный Jupyter Notebook, для работы с которым
необходим аккаунт Google
https://www.anaconda.com/products/individual-d
:
Для добавления новой ячейки используйте Insert->Insert Cell Above и Insert->Insert Cell Below
Для запуска ячейки используете команды из меню Cell, либо следующие сочетания клавиш
Код состоит из всего одной функции print(), её задача — вывести значение, которое подаётся в указанную
функцию. Это значение носит название "аргумент функции". У функции print в аргумент передается выводимое
значение, но другие функции могут иметь другие задачи.
Знак в выражении (например, "плюс" или "минус") в Python называется оператором. Основные
операторы перечислены в таблице ниже. Среди них особое внимание нужно уделить последним трём,
поскольку их синтаксис может быть непривычным.
У Python нет собственного оператора для извлечения корней, однако извлечение корней всегда можно
представить в виде возведения в степень, например, 4 ** (1/2) = 2.
В сложных вычислениях можно использовать скобки, чтобы отделить одни действия от других и назначить каким-то из них «приоритет».Например, Python без
труда посчитает такое выражение, если вводить его целиком: ((123 - 33)**5 + 123 / (4 + 76)) % 13. Нет необходимости делить это выражение на отдельные
действия.
Переменные. Типы данных
В Python можно хранить значения в переменных.
a=
my_name = "Слава"
Если в переменных лежат числа, то их можно складывать, вычитать, умножать, одним словом, делать все то же,
что и с числами.
a=1
b=1
c=a+b
В зависимости от задач необходимо сохранять в переменных разные типы значений. В то же время тип переменной зависит от того, какие значений там лежат
Целые числа, числа с плавающей запятой и комплексные числа относятся к группе чисел. В Python они представлены классами int, oat и complex.
5
fl
Преобразование типов данных
Если необходимо понять, какой имеется тип переменной, можно воспользоваться встроенной функцией type(). Например,
type(«студенты")
Мы можем преобразовывать значения из одного типа в другой с помощью таких функций, как int(), oat(), str() и т.д.
a = oat(2)
С переменным с типом int и oat можно применять все операции, описанные ранее.
• если хотя бы одна из переменных принадлежит к типу oat, результат вычисления тоже получит тип oat;
• при операции деления результат всегда вернётся с типом oat, даже если оба исходных числа принадлежат к типу int.
К строковым (текстовым) переменным, как ни странно, тоже применимы некоторые из изученных операторов — это операторы + и *. Так, оператор + «склеит»
воедино две строки, а оператор * продублирует строку нужное количество раз, объединив результат в одну строку.
fl
fl
:
fl
fl
fl
fl
Первые реальные задачи
В Python можно вводить свои данные с клавиатуры: для этого существует встроенная функция input().
При использовании функции input() появляется окно для ввода, после заполнения которого пользователю необходимо нажать Enter.
Аргумент этой функции можно оставить пустым, а можно добавить в него сопроводительную фразу (в кавычках), что именно должен
ввести пользователь.
Если не присваивать введённые пользователем данные никакой переменной, то они просто выведутся на
экране, а если присвоить, сохранятся под именем переменной, но не выведутся на экран.
ведённые пользователем через input() данные всегда рассматриваются как строковые (имеют тип string),
даже в том случае, когда он вводит числа.
Пример 1: Программа, которая просит пользователя ввести его имя и сохраняет результат в переменную user_name.
Пример 3: Программа, которая получает на вход два числа, a и b, и выводит на экран число a в степени b.
a = oat(input('Введите основание степени: \n')
b = oat(input('Введите показатель степени: \n')
# В функции print() можно в качестве аргументов
# перечислять через запятую все нужные для вывода данны
print('Полученное число:', a**b)
fl
fl
)
Условия
Кроме математических, в Python есть также и условные операторы, они позволяют включать в программу условия, при которых то или иное действие будет
выполнено.
Условный оператор в Python обозначается как if. Пусть у нас есть переменная а, содержащая число; мы хотим проверить, чётное ли это число, и вывести
соответствующую информацию на экран.
a=
if a % 2 == 0
print('Число чётное.')
следует обратить внимание на оператор == (двойное «равно»), который мы использовали. В отличие от привычного «равно» он используется не для
присваивания значений, а для сравнения двух объектов между собой. Оператор else также требует после себя двоеточия и отступа с новой строки.
Иллюстрация с сайта https://ppt-online.org/
4
a=
b=
if a == b
print('Числа равны.'
elif a < b
print('Первое число меньше второго.'
else
print('Первое число больше второго.')
Синтаксис оператора elif повторяет синтаксис if: после самого оператора следует проверяемое
условие, затем — двоеточие, отступ с новой строки и результат при выполнении этого условия.
Первым действием проверяет исполнение того условия, которое следует за if, если условие
соблюдается, то выполняет операцию после двоеточия, если не соблюдается, — проверяет
исполнение условия, которое следует за elif, если это условие соблюдается, — выполняет
операцию после двоеточия, если нет, — выполняет операцию, следующую за else.
Иллюстрация с сайта https://ppt-online.org/
5
Рассмотрим пример. Будем считать слово приятным, если в нём встречаются какие-либо из сонорных согласных: л, м, н. Будем считать слово неприятным,
если в нём нет перечисленных сонорных согласных и при этом встречаются какие-либо из шипящих согласных: ч, ш, щ. В иных случаях будем считать
слово нейтральным. Как бы выглядел код, определяющий, к какой группе относится заданное слово?
and or
Вход Выход Вход Выход
True и True True True и True True
True и False False True и False True
False и True False False и True True
False и False False False и False False
Первым делом компьютер проверяет, есть ли хотя бы один из сонорных согласных в заданном слове с помощью оператора or. Если ни одного
из них нет, то выполняет следующую проверку: есть ли в слове какой-нибудь из шипящих согласных. В случае когда и это условие не
выполняется, переходит к части else и выполняет заключительное действие. При проверке слова «солнышко» выполняется действие после
первого же условия.
Общий синтаксис цикла с параметром
Нередко встречаются ситуации, когда одно и то же действие следует повторить несколько раз и для нескольких объектов.В таких случаях
очень полезным инструментом становится цикл , который позволяет выполнять однотипные действия множество раз, не дублируя при этом
код.
В одной из задач мы проверяли чётность числа с помощью условий и выводили соответствующую информацию на экран. Вернёмся к этой
задаче: что, если нам необходимо проверить на чётность несколько чисел? Повторять код вручную несколько раз, меняя в нём число, было
бы не оптимально даже для такой простой задачи.
Пример:
нужно проверить на чётность все числа в диапазоне от 30 до 41 включительно и вывести результат для каждого из них на экран.
for i in range(30, 42): # Условия для прохода по цикл
# Тело цикл
if i%2 == 0
print('Число', i, 'чётное'
else
print('Число', i, 'нечётное')
По умолчанию нижняя граница диапазона в функции range() равна нулю, а не единице, а указанная верхняя граница не
включается.
Пример Соответствующий диапазон и функция enumerate(), которая возвращает пары вида «счётчик-
range(10) от 0 до 9 элемент». Её можно применять, например, к строкам.
range(1, 10) от 1 до 9
range(1, 10, 2) от 1 до 9 с шагом 2, т.е. 1, 3, 5,
'
Вычисления в циклах
Часто по ходу выполнения цикла бывает нужно не только вывести какую-то информацию, но и провести трансформацию данных. Например, могут быть интересны
не сами числа из интервала чисел, а их степени или корни. Циклы, конечно, способны получить и такую информацию.
Например, если нам нужно получить сумму корней чисел для диапазона чисел, с этим поможет цикл:
sum_squares =
for i in range(20, 30)
sum_squares += i**(1/2
print(sum_squares
output: 49.41177778422102
В этом примере для каждого числа от 20 до 29 включительно выполняется тело цикла, в данном случае это прибавление к переменной sum_squares корня числа i,
после чего сумма корней выводится на экран.
Иногда бывает нужно узнать, когда цикл закончился, например, когда он очень долго выполняется. Для этого можно использовать else.
for x in range(6)
print(x
else
print("Цикл завершен!"
output:
Цикл завершен!
1
2
3
4
5
for i in range(5)
i = i+
if i == 3
brea
print('Идёт итерация цикла №', i
print('Выполнение цикла закончено'
Output
Идёт итерация цикла №
Идёт итерация цикла №
Выполнение цикла закончено
В этой программе запускается цикл для i от 0 до 4. Каждый цикл выводит на экран информацию о том, какая итерация идёт в
текущий момент. Оператор if определяет условие прерывания цикла (в данном случае это равенство i трём). После цикла идёт ещё
один print, который информирует нас о завершении работы цикла. Как только значение i достигает 3, выполнение цикла
прекращается оператором break.
Оператор continue позволяет пропустить часть цикла при возникновении внешнего фактора и перейти к следующей итерации
цикла. То есть текущая итерация прерывается, после чего программа возвращается в начало цикла. Оператор continue
располагается в блоке кода после оператора цикла (обычно после if).
Операторы break и continue можно использовать вместо вложенного условного кода или для оптимизации
цикла.Вернёмся к предыдущему примеру и попробуем использовать оператор continue вместо break. В отличие от
break при использовании оператора continue код будет выполняться даже после прерывания цикла, когда
переменная i = 3.
Иллюстрация с сайта https://www.programiz.com/
:
Цикл while
Цикл while («пока») позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается до тела
цикла и проверяется до выполнения тела цикла. Как правило, цикл while используется, когда невозможно определить точное значение количества проходов
исполнения цикла.
money =
year =
yearly_multiplier = 1.0
Output
Деньги удвоятся через 12 лет
Каждую итерацию цикла проверяется условие того, что money < 2. Если условие выполняется, то выполняется и тело цикла, в котором к year прибавляется 1, а
money умножается на 1.06 (+6%). Как только мы получили удвоение денег, то есть money >= 2, цикл перестаёт выполняться, и выполняется блок кода после
else, который выводит нужное количество лет.
Синтаксис
В цикле while, как и в цикле for, можно применять операторы break и continue.Несмотря на удобность для
while условие некоторых задач, цикл while таит в себе и опасность. Если условие цикла while всегда выполняется (например,
тело цикл while True: ), то цикл не будет завершаться, произойдёт "зацикливание". В таком случае тело цикла будет
else выполняться бесконечное количество раз.
код, выполняющийся при завершении цикла.
:
Важно!
Когда мы называем список коллекцией, мы имеем в виду, что в одном
списке может храниться множество объектов (например, чисел или
строковых величин).
Говоря о том, что списки представляют собой упорядоченные коллекции,
мы обращаем внимание на то, что каждый элемент в списке имеет свой
порядковый номер.
Упоминание об изменяемости списков означает, что в процессе
исполнения кода можно изменять состав элементов списка и
последовательность их расположения.
Выражение «произвольных типов» означает, что в списке могут
храниться данные, относящиеся к любым типам из тех, с которыми
работает Python.
Создание списка
1 Первый способ создания пустого (т.е. не содержащего никаких элементов) списка связан с использованием конструктора типов list:
my_list = list()
Другой вариант создания списка предполагает использование квадратных скобок, в которые заключаются элементы списка. Если
2 мы используем скобки без каких-либо элементов, список получится пустым:
my_list = []
Список можно создать, перечислив элементы будущего списка в квадратных скобках. Элементы, заключенные в скобки, нужно
3 отделять друг от друга запятыми. После запятых можно ставить пробелы, но это не обязательно. Давайте рассмотрим несколько
примеров создания и заполнения списков.
Задание:
1. Список, содержащий гласные буквы русского алфавита
2. Список, содержащий названия самых популярных языков программирования
Метод split
Данный метод применяется к строковым объектам и позволяет разбивать их на элементы, разделенные каким-либо символом (пробелом,
запятой, тире или даже целой последовательностью символов). Каждый элемент после применения метода split становится отдельным
элементом списка.
Работа с индексами
Порядковый номер элемента списка называется индекс.
Важно!
В Python, как и во многих других языках программирования,
индексация элементов списка начинается не с единицы, а с нуля.
Таким образом, самый первый элемент списка имеет индекс [0].
Для обращения к элементу списка необходимо указать имя переменной, в которой хранится список, а далее в квадратных скобках
указать индекс нужного элемента. Например, в созданном на предыдущем шаге списке animals, элемент с индексом [0] — это кошка; с
индексом 2 — хомяк, с индексом 3 — морская свинка.
Списки можно читать не только слева направо, но и справа налево. Для того, чтобы обратиться к элементу списка, просматривая его
содержимое в обратном порядке, мы можем использовать так называемую отрицательную индексацию. При использовании
отрицательных индексов самый последний элемент списка будет иметь индекс [-1], предпоследний — [-2], и так далее.
Работа со срезами
Часто нам нужно извлечь из списка не один элемент, а сразу несколько элементов, идущих друг за другом. Для работы с группами элементов
списков в Python имеется очень гибкий инструмент, который называется срез (slice).
Под срезом следует понимать часть списка, содержащую один или несколько элементов, расположенных в списке один за другим в прямой или
обратной последовательности. При создании среза нужно указать индексы, соответствующие первому элементу среза и (внимание!) элементу,
следующему за последним элементом среза. Оба индекса указываются в квадратных скобках, между индексами ставится двоеточие.
При команде colors[1:4] получим названия трёх цветов: оранжевый, жёлтый и зелёный. Элемент с индексом [4] не будет включен в состав среза.
Это особенность синтаксиса, которую нужно запомнить и использовать при работе со срезами.
При создании срезов можно использовать как положительные, так и отрицательные индексы. Например, для извлечения жёлтого, зелёного и
голубого цветов одинаково подойдут следующие варианты кода:
colors[2:5]
colors[2:-2]
colors[-5:-2]
Работа со срезами
Индексы, указывающие на первый элемент среза и элемент, следующий за последним, называют границами срезов. При создании среза
элемент, чей индекс указан в качестве верхней границы, не будет включен в срез.
Для решения этой задачи можно воспользоваться простым трюком: не указывать верхнюю границу среза вовсе. Такая форма
записи трактуется интерпретатором Python как "до конца списка".
Таким же образом можно не указывать и нижний индекс, т.е. первый элемент среза, в случае, если вы хотите извлекать элементы из начала
списка:
Работа со срезами
Иногда нужно извлечь из списка не все значения подряд, а, например, каждый третий элемент, или только четные элементы. Для выполнения при
создании среза нам понадобится ещё один параметр — шаг. Шаг указывается после верхней и нижней границ среза и отделён от них двоеточием.
rabbits[0:7:2]
Данный код извлекает из списка кроликов с первого (индекс [0]) до последнего (индекс [7], данный кролик не включается в срез) и из полученного
набора выбирает только кроликов с индексами 0, 0+2, 0+2+2, 0+2+2+2. Если нужно включить в срез первый и (или) последний элементы, то можно
не задавать соответствующие границы
Работа со списками
Особенность любого объектно-ориентированного языка то, что при работе с разными типами объектов можно использовать только
определенные методы. Например, операцию сложения можно применять как к числовым, так и к строковым типам, а вот умножать можно
только число на число или целое число на строку.
Append
- добавление нового элемента в список
Порядок сортировки (по возрастанию или по убыванию) задаётся с помощью параметра reverse.
При установке параметра reverse = False происходит сортировка списка по возрастанию, а при reverse = True список сортируется по убыванию. Те же
принципы работают и со списками, содержащими строковые данные
Статистические показатели списка
Минимальное
значение
Максимальное
значение
Подсчет количества
элементов
Генераторы списков
Python — это язык программирования со своей философией, суть которой заключается в создании краткого, структурированного, легко
читаемого кода.
Для достижения этих задач в Python используется несколько мощных конструкций, позволяющих создавать краткий, но ёмкий и
эффективный код. Одна из таких конструкций — это генераторы списков (list comprehensions). Генератор списка позволяет создать
список и заполнить его данными, используя всего одну строку кода.
Работа со словарями
Отличаются словари от списков тем, что элементом словаря является не одно, а
мя Телефон два значения. Первое называется ключом, второе — значением.
Мария Никитина 79033923029
Егор Савичев 78125849204 employee_base = {'Мария Никитина': '+79033923029'}
Александр Пахомов 79053049385
Алина Егорова 79265748370 ключ значение
Руслан Башаров 79030598495 Элементы словаря добавляются в него через запятую.
Словари обладают еще одним замечательным свойством: поиск по ключам словаря в большинстве случаев не зависит от времени. То есть
поиск по словарю из 100 сотрудников будет занимать почти такое же время, как и по словарю из 100 тысяч сотрудников. И происходить это
будет гораздо быстрее, чем перебор элементов аналогичного списка.
При обращении к ключу словаря этот ключ должен обязательно быть в словаре.
Пропущенные ключи в словаре
Можно заранее проверить, есть ли в словаре нужный нам ключ. Это делается с помощью знакомой вам проверки if.
Метод setdefault. Он позволяет назначить ключу словаря определенное значение. Однако если этот ключ в словаре уже есть, то это
значение будет оставлено без изменений.
Перебор элементов словаря
Для перебора ключей и значений словаря есть три основных способа:
• ключи,
• значения,
• ключей и значений одновременно. Метод keys
Перебор элементов словаря
При замене keys на values в каждом шаге цикла в переменную попадут только значения словаря
Универсальным способом является перебор ключей и значений одновременно. Таким образом, в каждом шаге цикла нам
доступны ключ и значение в отдельных переменных. Для этого используем метод items:
В каждом шаге цикла в первую по счету переменную будет записываться ключ словаря. Во вторую — значение.
Вложенные списки и словари
На практике в качестве элементов списков часто выступают сами списки. Например, при чтении CSV-файла (это разновидность текстового
файла) после разбиения строк на столбцы мы будем иметь набор списков.
В каждом шаге цикла в переменную record пишется список с тремя столбцами. Перебор вложенных словарей происходит полностью
аналогично спискам
contacts =
'Борискин Владимир':
'tel': '5387'
'position': 'менеджер
}
'Сомова Наталья':
'tel': '5443'
'position': 'разработчик
}
}
'
'
Библиотека json
Для того чтобы открыть JSON-файл с помощью Python и прочитать данные, можно воспользоваться библиотекой JSON. Сейчас нам не
стоит заострять внимание на особенностях её использования.
import jso
with open('data.json', 'rb') as in le
data = json.load(in le)
Здесь 'data.json' указывает на путь к файлу. Чтобы код сработал корректно, нужно чтобы файл с данными хранился в той же папке, в
которой вы создали ноутбук с кодом. от код открывает файл 'data.json' и затем преобразует JSON в объекты, с которыми может
работать Python: в словари и списки. Всё это записывается в переменную data.
n
fi
fi
:
Источники:
1. ОФициальный сайт Anaconda https://www.anaconda.com/distribution/#windows
2. Google Colaboratory https://colab.research.google.com/drive/1ZTFTxeAs9BFVv6hLvIMpq0DnUBYzOsKU#scrollTo=kkhU2dWvBaFO
3. Данные платформы skillfactory.ru
4. Платформа http://pythonicway.com
5. Справка по Markdown https://github.com/sandino/Markdown-Cheatsheet
6. Python Documentation https://docs.python.org/3.7/library/functions.html#print
Дополнительные ссылки:
1. Организация словаря: https://habr.com/ru/post/247843/
2. Функции Python https://www.internet-technologies.ru/articles/funkcii-print-v-python.html
3. Jupiyter Notebook https://devpractice.ru/python-lesson-6-work-in-jupyter-notebook/
4. Операторы Python http://pythonicway.com/python-operators
5. Циклы http://inf-w.ru/?page_id=7077
6. Функция enumerate https://pythonz.net/references/named/enumerate/
7. Информация по циклу while https://rtfm.co.ua/books-translations/python_s_nulya/python-s-nulya-chast-5-cikly/python-s-nulya-chast-5-cikly-cikl-while/
Спасибо за внимание!
s/d/1p3qcq9LD4chy-Lvtn1DaJJfLtb4ho3Ef1ob3NeA9SP0/edit?
usp=sharing