Булевы значения
Это самый примитивный тип данных в Python, да и в любом языке программирования, который может принимать два значения: истина () или лож (). Небольшая оговорка, в Python ложными и истинными значениями считаются не только и .
К истинным значениям в Python относятся:
- любое число не равно нулю;
- любая непустая строка;
- любой непустой объект.
К ложным значениям в Python относятся:
- ноль ();
- ;
- пустая строка;
- пустой объект.
Чтобы проверить, является ли значение объекта ложным или истинным, используйте функцию :
Пример
Еще ближе познакомитесь с логическим типом данных в уроке, посвященном условной конструкции .
Операторы присваивания
Мы видели, что переменным можно присваивать значение с помощью оператора . Например, следующим образом:
a = 24 print(a) # 24
Мы можем использовать эти переменные в выражениях с любым из упомянутых ранее операторов. Например, чтобы добавить 2 к , мы пишем:
a + 2 # 26
Мы можем захотеть обновить переменную a новым значением. В этом случае мы могли бы объединить сложение и присваивание и написать . Поскольку этот тип комбинированной операции и присваивания очень распространен, Python включает встроенные операторы обновления для всех арифметических операций:
a += 2 # эквивалентно a = a + 2 print(a) # 26
Расширенный оператор присваивания есть для каждого из бинарных операторов, перечисленных ранее. Они выглядят следующим образом:
a += b a -= b a *= b a /= b a //= b a %= b a **= b a &= b a |= b a ^= b a <<= b a >>= b
Каждый из этих операторов эквивалентен применению соответствующего оператора с последующим присваиванием. То есть для любого оператора выражение эквивалентно с небольшой оговоркой.
Для изменяемых объектов, таких как списки, массивы или датафреймы, эти расширенные операции присваивания на самом деле немного отличаются от своих более подробных аналогов. Они изменяют содержимое исходного объекта, а не создают новый объект для хранения результата. Но это тонкости, в целом же укороченная версия работает так же, как и полная, но экономит кучу вашего времени.
Matplotlib
Сайт: http://matplotlib.sourceforge.net/ Поддерживаемые версии Python: 2.4, 2.5Документация: http://matplotlib.sourceforge.net/
Краткое описание
Matplotlib — это библиотека для построения графиков и визуализации данных. Кроме большого количества типов графиков, которые можно построить с помощью этого пакета, приятной особенностью Matplotlib является то, что функции для построения графиков напоминают функции Matlab. Здесь есть проблемы с отображением на графиках русских букв. Зато через Matplotlib можно выводить формулы в виде TeX. Графики, нарисованные с помощью Matplotlib можно масштабировать для просмотра интересующей области, причем как программно из скрипта, так и через интерфейс с помощью мыши.
Примеры использования
#-*- coding: utf-8 -*-import pylabimport math# Картинка в левом верхнем углу
x1 = range (1, 100)
data1 = math.exp (-n * n / 1000.0) for n in x1# Разбиваем окно на две строки и два столбца. Вывод будет осуществляться в первую область
pylab.subplot (2, 2, 1)# Вывод данных
pylab.plot (x1, data1, «r»)# Картинка в правом верхнем углу
fracs = 10, 20, 30, 40# Разбиваем окно на две строки и два столбца. Вывод будет осуществляться во вторую область
pylab.subplot (2, 2, 2)
pylab.pie (fracs)# Картинка снизу
x2 = range (, 720)
data2 = math.sin (n * math.pi / 180.0) for n in x2
data3 = math.sin (n * math.pi / 180.0 + math.pi / 3) for n in x2# Разбиваем окно на две строки и один столбец. Вывод будет осуществляться во вторую область
pylab.subplot (2, 1, 2)# Вывод данных
pylab.plot (x2, data2)
pylab.plot (x2, data3, «—«)# Добавим легенду
pylab.legend («label 1», «label 2»)# Включим сетку
pylab.grid(True)# Нарисовать все
pylab.show()
Исходник
Результат работы:
Также можете посмотреть статью Рисование трехмерных графиков в Python с помощью Pylab/MatPlotLib и Шпаргалку по библиотеке Matplotlib/Pylab.
Много примеров использования можно найти на этой странице официального сайта.
Деление (/)
Сложение, вычитание и умножение тривиальны, а вот с делением не всё так просто. В Python существует три вида деления и столько же разных операторов. Начнём с истинного деления, за которое отвечает оператор «». Его главным отличием является то, что, вне зависимости от типов операндов, будет возвращен вещественный результат ().
Этот вид деления наиболее близок к обычному и знакомому нам математическому. И здесь тоже нельзя делить на ноль:
Немного истории. В старых версиях Питон оператор «/» выполнял операцию классического деления: т.е. он делил целочисленно и усекал дробную часть в том случае, когда делимое и делитель были целыми. Если же операнды принадлежали к множеству вещественных чисел, то проводилось деление с сохранением дробной части, и результат был float.
Разработчики отказались от классического деления в Python 3.0 и вместо него добавили истинное деление. Архитекторы языка пошли на такой шаг по той причине, что в предыдущей модели классического деления результаты напрямую зависели от типов операндов. Из-за этого возникали трудности с их предварительной идентификацией и оценкой, что было особенно критично для Питона, как для языка с динамической типизацией.
Числа
Python есть 6 основных «математических» операторов:
- сложение;
- вычитание;
- умножение;
- деление;
- возведение в степень.
- остаток от деления (mod);
- целочисленное деление (div).
Большинство из вас должно быть знакомо со всеми вышеперечисленными операторами, кроме оператора взятия остатка от деления и целочисленного деления. Не волнуйтесь, мы поговорим об этом. Начнем с начала.
Сложение
Несложно догадаться, что делает этот оператор: он просто складывает числа. Чтобы проверить, как это работает, просто перейдите в IDLE и введите число, затем знак сложения + (плюс), а затем еще одно число, которое нужно добавить к первому числу. Нажмите Enter. Это должно выглядеть так, как показано ниже.
Пример: сложим 8 и 19.
После нажатия клавиши Enter чуть ниже строки кода появится ответ. Вывод так и будет отображаться каждый раз — чуть ниже кода. Нажимаете Enter — получаете результат.
Не останавливайтесь на этом примере, попробуйте использовать оператор сложения с другими числами. Например, попробуйте сложить числа с плавающей точкой: и т. д.
У вычитания такой же синтаксис, как и у сложения. Просто измените оператор на знак вычитания (минус). Так же выберите случайные числа и попробуйте вычесть одно из другого.
Пример: вычтем из 89.33 число 23.67. Ответ 65.55.
Умножение
Опять то же самое! Просто измените оператор на (звездочку). Вы ведь знаете, что он используется для умножения, верно? Попробуйте использовать оператор в IDLE.
Пример: возьмите любые два числа и умножьте их с помощью оператора умножения, как показано ниже.
Деление
На этот раз нам понадобится знак (слэш). Попробуйте использовать оператор со случайными числами.
Если вы новичок, то можете столкнуться с некоторыми трудностями. Какими? Сейчас узнаем. Для начала возьмем целые числа (числа без десятичной дроби), например 16 и 2, и разделим одно на другое.
Возведение в степень
Этого математического оператора обычно в языках программирования нет. Честно говоря, языков со встроенным возведением в степень, кроме Python, и не припомнить. В других языках для возведения в степень используют другие операторы. В Python же для этого достаточно поставить между двумя числами (две звездочки). Правое число возведется в степень, равную левому числу. Например, чтобы найти 10 степень числа 2, нужно написать:
Теперь мы знаем обо всех часто используемых математических операторах Python. Попробуйте объединить несколько операторов и использовать их в одном выражении. Например, введите . Python должен вывести .
Взятие остатка от деления
Оператор взятия остатка от деления в Python обозначается % (знак процента). Если вам знакомы другие языки программирования, скорее всего, вы знаете, что такое взятие остатка от деления. В других языках этот оператор часто называют mod. Если вы с ним еще не знакомы, ничего страшного.
Вы ведь знаете оператор деления, так? Тогда вы знаете, каков будет остаток от этого деления, верно? Этот оператор как раз и возвращает этот остаток в качестве ответа. Целая часть как бы откидывается. Вот несколько примеров.
- , так как 12 полностью делится на 2.
- , так как остаток от деления 13 на 2 равен 1.
- , так как, опять же, остаток от деления 19 на 5 равен 4.
В IDLE все так же:
Целочисленное деление
Этот оператор в Python обозначается знаком // (двумя слэшами), в других языках его называют div. Оператор откидывает остаток и оставляет только целую часть. Вот как это работает:
- , так как 13/2 = 6.5
- , так как 19/5 = 3.8
Попробуйте использовать целочисленное деление со случайными числами в своей IDLE.
Арифметические операторы Python.
В таблице перечислены арифметические операторы, среди которых встречаются некоторые знаки, не используемые в алгебре.
Операции Python | Арифметический оператор | Алгебраическое выражение | Выражение Python |
---|---|---|---|
Сложение | + | a + b | a + b |
Вычитание | — | a — b | a — b |
Умножение | * | a · b | a * b |
Возведение в степень | ** | xy | a ** b |
Деление | x / y | x / y | |
Целочисленное деление | // | [ x / y ] | x // y |
Остаток от деления | % | r mod s | r % s |
2.1. Сложение и вычитание в Python.
Сложение и вычитание в целом выполняется и записывается, как и обычно в алгебре.
>>> 5 + 27
>>> 5 — 23
2.2. Умножение в Python( *)
В Python в качестве оператора умножения используется знак * (звездочка)
>>> 5 * 525
2.3. Возведение в степень в Python( **)
В Python для возведения в степень используются два знака **.
>>> 5 ** 615625
>>> 81 **(1/2)9.0
Для вычисления квадратного корня можно воспользоваться показателем степени 1/2. Корень 81 = 9.
2.4. Деление в Python ( )
Оператор деления () делит числитель на знаменатель
>>> 10 25.0
>>> 10 81.25
Важно, при делении двух любых чисел — даже если это целые числа, частным от деления которых является целое число, вы всегда получаете вещественное число.
2.5. Деление с округлением в Python( //)
Операция целочисленное деление ( // ) делит числитель на знаменатель, в результате получается наибольшее целое число, не превышающее результат. В Python дробная часть отсекается.
>>> 10 // 81
>>> 20 // 82
>>> — 17 // 4-5
При обычном деление 10 на 8, получается результат 1,25. Python отсекает дробную часть и в итоге получаем 1.
2.6. Оператор вычисления остатка от деления ( % )
Для вычисления остатка от деления в Python используется оператор вычисления остатка от деления %
>>> 21 % 51
>>> 18 % 42
>>> 9.5 % 4.50.5
В данных примерах при делении 21 на 5, получается частное 4 и остаток 1. Во втором случае при делении 18 на 4, получается 4 и остаток 2. Этот оператор чаще работает с целыми числами, но также может использоваться и с другими типами.
Библиотека (модуль) math
В стандартную поставку Python входит библиотека math, в которой содержится большое количество часто используемых математических функций.
Для работы с данным модулем его предварительно нужно импортировать.
>>> import math
Рассмотрим наиболее часто используемые функции.
math.ceil(x)
Возвращает ближайшее целое число большее, чем x.
>>> math.ceil(3.2) 4
math.fabs(x)
Возвращает абсолютное значение числа.
>>> math.fabs(-7) 7.
math.factorial(x)
Вычисляет факториал x.
>>> math.factorial(5) 120
math.floor(x)
Возвращает ближайшее целое число меньшее, чем x.
>>> math.floor(3.2) 3
math.exp(x)
Вычисляет e**x.
>>> math.exp(3) 20.085536923187668
math.log2(x)
Логарифм по основанию 2.
math.log10(x)
Логарифм по основанию 10.
math.log(x)
По умолчанию вычисляет логарифм по основанию e, дополнительно можно указать основание логарифма.
>>> math.log2(8) 3. >>> math.log10(1000) 3. >>> math.log(5) 1.6094379124341003 >>> math.log(4, 8) 0.6666666666666667
math.pow(x, y)
Вычисляет значение x в степени y.
>>> math.pow(3, 4) 81.
math.sqrt(x)
Корень квадратный от x.
>>> math.sqrt(25) 5.
Тригонометрические функции, их мы оставим без примера.
math.cos(x)
math.sin(x)
math.tan(x)
math.acos(x)
math.asin(x)
math.atan(x)
И напоследок пару констант.
math.pi
Число пи.
math.e
Число е.
Работа с циклами и условиями
Теперь посмотрим, как в Python устроены условия и циклы, которые позволяют направить вычисления в ту или иную сторону.
Для условий используются классические структуры if — else. Давайте с их помощью проверим число на чётность:
Важная особенность синтаксиса (хорошо видна в примере выше): для создания иерархии в Python используется отступ, а не фигурные скобки, как в некоторых других языках. Сначала это непривычно, но не пугайтесь: вы быстро привыкнете.
Циклы позволяют выполнять какое-то действие больше чем один раз. Виды циклов:
- while: действие будет выполняться до тех пор, пока выполняется условие;
- for: действие будет выполнено определённое количество раз.
Посмотрим на примерах, как это работает.
ПРИМЕР 1
Такой код выведет нам последовательность чисел от 10 до 0, а потом остановится.
ПРИМЕР 2
Здесь мы получим последовательность от 10 до 1 и напечатанное «Hurray!» в конце.
Перед работой с For-циклом надо узнать, что такое массив.
Массив — это набор информации, который представляется так:
В одном массиве можно хранить переменные разных типов. Например, в нашем массиве array хранится один int, два float и один str. Индексы в Python начинаются с нуля, поэтому чтобы получить информацию с первого места (в нашем случае цифру 1), напишем вот так:
С элементом массива можно работать как с обычным числом, то есть если написать array +1, мы получим 2.
Напишем простенький цикл:
Деление с остатком Python
Оператор % используется для деления по модулю, и возвращает остаток от деления, а не частное. Это полезно, например, для нахождения множителей числа.
Деление по модулю Python (с остатком) — пример:
o = 85 p = 15 print(o % p)
Вывод
10
В этом примере 85 делится на 15. Результат – 5 с остатком 10. Значение выводится, поскольку оператор возвращает остаток от деления.
Если мы используем два числа с плавающей точкой для деления по модулю, число с плавающей точкой будет возвращено в качестве остатка:
q = 36.0 r = 6.0 print(o % p)
Вывод
0.0
В приведенном выше примере 36.0 делится на 6.0 без остатка, поэтому возвращается значение 0.0.
Не все так гладко…
Однако, не все так гладко в python. Например, сейчас уживается две версии языка 2. и 3., обе они развиваются параллельно, однако синтаксис 2ой версии не совместим полностью с синтаксисом 3ей версии.
Еще одна проблема может возникнуть у вас, если вы не обладатель linux, в этом случае при установке ряда библиотек у вас могут возникнуть трудности, некоторые библиотеки будут полностью не совместимы, например tensorflow.
P.S: все библиотеки для python, о которых говорилось данной статье, имеют открытый исходный код и распространяются бесплатно. Для их загрузки можно воспользоваться командой pip или просто скачать сборку Anaconda, которая содержит все основные библиотеки.
# Преобразование к логическому типу
Нам известны три типа данных – целые и вещественные (дробные) числа, и также строками. Новый четвертый – логический тип данных (тип ). Его также называют булевым. У этого типа всего два возможных значения: (правда) и (ложь):
1234
Здесь переменной a было присвоено значение , после чего с помощью встроенной в Python функции проверен ее тип. Интерпретатор сообщил, что это переменная класса . Понятия «класс» и «тип данных» в данном случае одно и то же. Переменная b также связана с булевым значением.
В программировании обычно приравнивают к нулю, а – к единице. Чтобы в этом убедиться, можно преобразовать булево значение к целочисленному типу:
12
Возможно и обратное. Можно преобразовать какое-либо значение к булевому типу:
12345
И здесь работает правило: всё, что не и , является правдой: .
Trigonometric functions¶
- (x)
-
Return the arc cosine of x, in radians. The result is between and
.
- (x)
-
Return the arc sine of x, in radians. The result is between and
.
- (x)
-
Return the arc tangent of x, in radians. The result is between and
.
- (y, x)
-
Return , in radians. The result is between and .
The vector in the plane from the origin to point makes this angle
with the positive X axis. The point of is that the signs of both
inputs are known to it, so it can compute the correct quadrant for the angle.
For example, and are both , but is .
- (x)
-
Return the cosine of x radians.
- (p, q)
-
Return the Euclidean distance between two points p and q, each
given as a sequence (or iterable) of coordinates. The two points
must have the same dimension.Roughly equivalent to:
sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
New in version 3.8.
- (*coordinates)
-
Return the Euclidean norm, .
This is the length of the vector from the origin to the point
given by the coordinates.For a two dimensional point , this is equivalent to computing
the hypotenuse of a right triangle using the Pythagorean theorem,
.Changed in version 3.8: Added support for n-dimensional points. Formerly, only the two
dimensional case was supported.Changed in version 3.10: Improved the algorithm’s accuracy so that the maximum error is
under 1 ulp (unit in the last place). More typically, the result
is almost always correctly rounded to within 1/2 ulp.
- (x)
-
Return the sine of x radians.
Арифметические операции с целыми и вещественными числами
Все эксперименты будем производить в Python, запущенном в интерактивном режиме.
Сложение.
Складывать можно непосредственно сами числа…
>>> 3+2 5
либо переменные, но они должны предварительно быть проинициализированы.
>>> a = 3 >>> b = 2 >>> a + b 5
Результат операции сложения можно присвоить другой переменной…
>>> a = 3 >>> b = 2 >>> c = a + b >>> print(c) 5
либо ей же самой, в таком случае можно использовать полную или сокращенную запись, полная выглядит так
>>> a = 3 >>> b = 2 >>> a = a + b >>> print(a) 5
сокращенная так
>>> a = 3 >>> b = 2 >>> a += b >>> print(a) 5
Все перечисленные выше варианты использования операции сложения могут быть применены для всех нижеследующих операций.
Вычитание.
>>> 4-2 2 >>> a = 5 >>> b = 7 >>> a - b -2
Умножение.
>>> 5 * 8 40 >>> a = 4 >>> a *= 10 >>> print(a) 40
Деление.
>>> 9 3 3. >>> a = 7 >>> b = 4 >>> a b 1.75
Получение целой части от деления.
>>> 9 3 3 >>> a = 7 >>> b = 4 >>> a b 1
Получение остатка от деления.
>>> 9 % 5 4 >>> a = 7 >>> b = 4 >>> a % b 3
Возведение в степень.
>>> 5 ** 4 625 >>> a = 4 >>> b = 3 >>> a ** b 64
Библиотека Math в Python
Math является самым базовым математическим модулем Python. Охватывает основные математические операции, такие как сумма, экспонента, модуль и так далее. Эта библиотека не используется при работе со сложными математическими операциями, такими как умножение матриц. Расчеты, выполняемые с помощью функций библиотеки math, также выполняются намного медленнее. Тем не менее, эта библиотека подходит для выполнения основных математических операций.
Пример: Вы можете найти экспоненту от 3, используя функцию библиотеки math следующим образом:
from math import exp exp(3) # Вычисление экспоненты
Математические библиотеки Python
Начало работы в Python
Чтобы начать программировать, нужно скачать и установить дистрибутив. Для новичков хорошо подойдёт Anaconda.
Чем он хорош: в нём есть всё, что понадобится в работе.
В Anaconda уже встроены:
- все библиотеки машинного обучения и библиотеки для работы с данными (например, NumPy и Pandas);
- библиотека для визуализации (Matplotlib);
- надстройка Jupyter, чтобы программировать прямо в браузере.
После того как вы установили и открыли Anaconda, у вас появится вот такое окно:
Кнопкой Launch запустим «тетрадку» Jupyter, которая откроет ваш дефолтный браузер. После этого ваше рабочее пространство будет выглядеть так:
Или так:
По функциональности они абсолютно одинаковые.
Важная особенность: комментарии в Python делаются с помощью решетки, вот так:
Комментарии — это часть кода, которая не будет выполняться. Для чего используется комментирование?
Во-первых, чтобы написать небольшое пояснение (например, к какой-то функции).
Во-вторых, можно закомментировать часть кода, чтобы посмотреть, как остальной код работает без этой части.
Выполнение кода. Для этого используется Shift+Enter, Ctrl+Enter или значок «Пуск».
В чём разница?
Если нажать Shift+Enter, то курсор перескочит на следующую ячейку.
Если нажать Ctrl+Enter — останется в той, где вы работали.
Функции возведения в степень и логарифма
Эта функция принимает один параметр в виде дробного числа и возвращает .
Пример:
Вывод:
Эта функция работает так же, как и , но возвращает . Здесь, значит , то есть, .
Пример:
Вывод:
Функция log() — логарифм числа
Функция находит логарифм числа по основанию (по умолчанию). — параметр опциональный. Если нужно вычислить логарифм с определенным основанием, его нужно указать.
Пример:
Вывод:
Эта функция похожа на функцию логарифма, но добавляет к . значит , то есть, .
Пример:
Вывод:
Вычисляет логарифм по основанию 10.
Пример:
Вывод:
Функция pow() — степень числа
Используется для нахождение степени числа. Синтаксис функции . Она принимает два аргумента: основание и степень.
Пример:
Вывод:
Функция sqrt() — квадратный корень числа
Эта функция используется для нахождения квадратного корня числа. Она принимает число в качестве аргумента и находит его квадратный корень.
Пример:
Вывод:
Закрепление знаний на практике
К этой ступени вы подходите с необходимыми знаниями для начала аналитической работы с Python. Осталось их закрепить и приумножить на практике. Мы знаем три способа попратиковаться с пользой: участвовать в конкурсах Kaggle, придумать и решить задачу самому, пройти практический курс.
Участвовать в конкурсах.
Kaggle часто проводит конкурсы по анализу данных. Советуем сначала участвовать в конкурсах без призов, потому что они самые простые. И со временем перебираться к более сложным.
Вряд ли в реальной работе вам встретятся задачи похожие на те, что вы решали на конкурсах, зато потренируетесь в нахождении верных путей решения.
Если такой способ практики вам подходит, почитайте руководство, как участвовать в конкурсах Kaggle, — The Beginner’s Guide to Kaggle.
Придумать и решить задачу самому.
Давайте представим маркетолога, который устал допоздна засиживаться на работе из-за того, что приходится вручную собирать и обрабатывать данные и делать на их основе наглядные отчеты. Чтобы упростить себе работу и возвращаться вовремя домой, он ставит задачу — автоматизировать этот процесс, используя Python, и решает ее.
Подобным образом вы находите то, что затрудняет вам работу, и придумываете, как это устранить. Единственное, что вам может помешать, — это незнание последовательности действий. От этого вы можете пропустить необходимые шаги и потерпеть неудачу. Либо застрять посередине, не зная, как действовать дальше.
Если это произойдет, воспользуйтесь способом ниже.
Пройти практический курс.
Под практическим курсом мы понимаем получение необходимых знаний и закрепление их на реальной задаче под присмотром наставника.
Мы не стали искать подобные курсы у других, а сделали свой. Называется он «Курс по Pytnon для анализа данных». Участники изучат Python и научатся использовать его для анализа данных на примере реальных бизнес-задач.
Теперь вы знаете, в каком направлении двигаться, чтобы научиться использовать Python для анализа данных. Если сомневаетесь, что осилите это самостоятельно, приходите к нам на курс.