лаба2
.docxМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
КАФЕДРА № 41
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
старший преподаватель |
|
|
|
Н.А. Соловьева |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №2 |
Работа с данными в формате CSV |
по курсу: ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ |
|
|
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
4616 |
|
|
|
А.В.Павлов |
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2018
-
ПОСТАНОВКА ЗАДАЧИ
Проанализировать данные из файла cvs и обработать их
ЗАДАНИЕ 7:
DailySmokers.csv A A
-
МАТЕМАТИЧЕСКАЯ МОДЕЛЬ
Импортируем библиотеки
Рисование графиков
Записывай строки из cvs файла в массив datas
Цикл от 1 до 5
Убираем первые три строки массива datas в массиве data
Добавляем странны в отдельный массив и сортируем и убираем дубли
Случайное число используем это число как номер странны
Добавляем в массив time отсортированное время
Добавляем в массивы значения которые соответствуют нашему параметру
На основе этих массивов рисуем графики
Считаем по данным СКО и среднее значение
Записываем эти данные в cvs и рисуем
-
ОПИСАНИЕ РАЗРАБОТАННОЙ ПРОГРАММЫ
Код программы:
import csv
import matplotlib.pyplot as plt
from itertools import chain
import numpy as np
from itertools import groupby
fig = plt.figure()
ax1 = fig.add_axes([0,0,1,1])
ax2 = fig.add_axes([0,-1.3,1,1])
ax3 = fig.add_axes([0,1.3,1,1])
ax4 = fig.add_axes([0,-2.5,1,1])
ax1.grid(True, color = 'g', lw = 0.2)
ax2.grid(True, color = 'g', lw = 0.2)
ax3.grid(True, color = 'g', lw = 0.2)
ax4.grid(True, color = 'g', lw = 0.2)
ax1.set_title('График TOT')
ax2.set_title('График MEN')
ax3.set_title('График WOMEN')
ax4.set_title('Пункт 3')
with open('DailySmokers.csv', 'r') as fp:
reader = csv.reader(fp, delimiter=',', quotechar='"')
datass = [row for row in reader]
fp.close()
for i in range(5):
data=[]
time=[]
country=[]
data=np.array(datass[3:])
#Выбор рандомной страны
for z in range(1,len(data)):
for x in range(1):
country.append(data[z][x])
time.append(data[z][x+5])
cnt = [el for el, _ in groupby(country)]
time=([a[0] for a in groupby(sorted(time))])
randomcountry = int(np.random.random() * len(cnt))
country= cnt[randomcountry]
datas=[]
for i in range(1,len(data)):
if (cnt[randomcountry]) == (data[i][0]):
datas.append(data[i])
val_tot=[]
val_men=[]
val_women=[]
for i in range(len(datas)):
if (datas[i][2]) =='TOT':
val_tot.append(datas[i][5:7])
if (datas[i][2]) =='MEN':
val_men.append(datas[i][5:7])
if (datas[i][2]) =='WOMEN':
val_women.append(datas[i][5:7])
ax1.plot(([float(val_tot[i][0]) for i in range(len(val_tot))]),[float(val_tot[i][1]) for i in range(len(val_tot))], label=country)
ax2.plot([float(val_men[i][0]) for i in range(len(val_men))],[float(val_men[i][1]) for i in range(len(val_men))], label=country)
ax3.plot([float(val_women[i][0]) for i in range(len(val_women))],[float(val_women[i][1]) for i in range(len(val_women))], label=country)
ax1.legend()
ax2.legend()
ax3.legend()
print(len(time))
#3 пункт
cnt_val=[]
sr_cnt=[]
std_cnt=[]
alls=[]
times=([int(a[0]) for a in groupby(sorted(time))])
for i in range(len(time)):
alls.append([])
for x in range(len(data)):
if data[x][5]==time[i]:
cnt_val.append(float(data[x][6]))
alls[i].append(time[i])
alls[i].append(np.mean(cnt_val))
alls[i].append(np.std(cnt_val))
sr_cnt.append(np.mean(cnt_val))
std_cnt.append(np.std(cnt_val))
ax4.plot(times,std_cnt,label='СКО')
ax4.plot(times,sr_cnt,label='Среднее')
ax4.set_xlim(times[0],times[-1])
ax4.set_xticks([i for i in range(times[0],times[-1]+1,5)])
ax4.legend()
#Запись файла
outfile = open('D:/Учеба/3 курс/ТП/NEW.csv','w',newline='')
out = csv.writer(outfile,delimiter='1')
out.writerows(map(lambda x: [x], alls))
outfile.close()
Используемые переменные:
Имя переменной |
Тип переменной |
Назначение |
datas |
Список |
Массив данных – данные из cvs |
data |
Список |
Массив данных – данные из cvs без 3 эл. |
val_tot |
Список |
Массив данных – значение и год соответствующий параметру TOT |
val_men |
Список |
Массив данных – значение и год соответствующий параметру men |
val_women |
Список |
Массив данных – значение и год соответствующий параметру women |
time |
Список |
Массив данных – данные о времени |
county |
Список |
Массив данных – данные о странах |
-
ПРИМЕРЫ РАБОТЫ ПРОГРАММЫ
Рисунок 1 - Результат работы
-
ВЫВОДЫ
В ходе лабораторной работы я научился работать с cvs файлами, импортировать их в python и работать с данными из них, так же научился записывать проанализированные данные обратно в cvs