Это старая версия Информатика/Архив/2017/11Б1/matplotlib за 28.12.2016 18:34 под редакцией SergeyShashkov.
Просмотр кода страницы matplotlib страница
Основным материалом по matplotlib будет следующий ресурс: http://nbviewer.jupyter.org/github/whitehorn/Scientific_graphics_in_python/tree/master/
===Задача 1===
Глобальная задача: увидеть, что в питоне для умножения больших чисел используется алгоритм Карацубы, а также получить практически его асимптотику.
Должен получиться график в духе такого:
file:/py_vs_gmp_2.png
В данной задаче нужно:
1. Научиться генерить случайные целые числа длиной k бит;
2. Научиться измерять время нескольких операций, используя таймер time.process_time();
3. Отобрать набор битовых длин для изучения времени: геометрическую прогрессию с началом в 30 и окончанием в 300000 бит длиной 150-300 челов;
4. Вычислить среднее время умножения нескольких пар чисел;
5. Построить график времени в log-log шкале (пусть битовые длины k[i], а времёна t[i], нужно построить зависимость log(t[i]) от log(k[i]);
6. Найти такую прямую l(x) = ax+b, что сумма квадратов разностей (log(t[i]) - l(log(k[i]))) для битовых длин k[i] > 2000 минимальна;
7. Построить график этой прямой в log-log шкале, а также вычислить параметры в обычной шкале (log(y) = a log(x) + b => y = e^(b)*x^(a))
8. Подписать эту прямую на графике
===Задача 2===
((https://goo.gl/q0GTLk Ирисы Фишера))
В данной задаче нужно:
1. Прочитать про датасет по ссылке выше в википедии;
2. Научиться загружать эти данные и изучить их;
3. Построить графики как в примере ниже;
4. Научиться решать следующую задачу: даны два множества точек на плоскости таких, что они разделимы прямой, то есть существует прямая такая, что все точки одного множества лежать по одну сторону от прямой, а точки второго --- по другую. Необходимо найти хотя бы одну такую прямую;
5. Улучшение 4: нужно найти такую прямую, что минимальное расстояние до любой из точек максимально.
file:/512pxsvm_separating_hyperplanes_svg.svg.png
##from sklearn import datasets##
### После этой команды будет загружен словарь (выполнить один раз)##
##iris = datasets.load_iris()##
####
### Сохраняем данные на компьютер (выполнить один раз)##
### data, target, feature_names, target_names = iris['data'], iris['target'], iris['feature_names'], iris['target_names']##
### with open(r'M:\np_basic\iris.dump', 'wb') as f:##
### pickle.dump((data, target, feature_names, target_names), f)##
####
### Загрузка данных из сохранённого дампа##
##with open(r'M:\np_basic\iris.dump', 'rb') as f:##
##(data, target, feature_names, target_names) = pickle.load(f)##
file:/iris_dataset_scatterplot.svg.png
===Задача 3===
====Титаник====
Данные:
file:/titanic_train.csv
##import numpy as np##
##import pandas as pd##
##titanic_df = pd.read_csv("titanic_train.csv")##
### Вектор ответов##
##y_train = titanic_df['Survived'].as_matrix()##
### Удаляем ненужные столбцы##
##titanic_df.drop(['PassengerId','Name','Ticket','Survived'], axis=1, inplace=True)##
### Данные##
##columns = titanic_df.columns##
##x_train = titanic_df.as_matrix()##
Описание столбцов:
* PassengerId — идентификатор пассажира
* Survival — поле в котором указано спасся человек (1) или нет (0)
* Pclass — содержит социально-экономический статус:
* высокий
* средний
* низкий
* Name — имя пассажира
* Sex — пол пассажира
* Age — возраст
* SibSp — содержит информацию о количестве родственников 2-го порядка (муж, жена, братья, сетры)
* Parch — содержит информацию о количестве родственников на борту 1-го порядка (мать, отец, дети)
* Ticket — номер билета
* Fare — цена билета
* Cabin — каюта
* Embarked — порт посадки
* C — Cherbourg
* Q — Queenstown
* S — Southampton
file:/__results___7_2.png
file:/__results___7_3.png
file:/__results___9_2.png
Для ((https://www.kaggle.com/c/titanic/data kaggle)):
file:/titanic_test.csv
##test_df = pd.read_csv("train.csv")##
### Сохраняем ID пассажиров##
##PassengerIds = test_df['PassengerId'].as_matrix()##
### Удаляем ненужные столбцы##
##test_df.drop(['PassengerId','Name','Ticket','Survived'], axis=1, inplace=True)##
### Делаем предсказание##
##y_pred = np.zeros_like(PassengerIds)##
### Генерим ответ##
##submission = pd.DataFrame({"PassengerId": PassengerIds, "Survived": y_pred})##
##submission.to_csv('titanic_submission.csv', index=False)##