Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лаба2-1

.docx
Скачиваний:
15
Добавлен:
25.12.2018
Размер:
303.91 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

КАФЕДРА № 41

ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

старший преподаватель

Н.А. Соловьева

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №2

Работа с данными в формате CSV

по курсу: ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР. №

4616

А.В.Павлов

подпись, дата

инициалы, фамилия

Санкт-Петербург 2018

  1. ПОСТАНОВКА ЗАДАЧИ

Проанализировать данные из файла cvs и обработать их

ЗАДАНИЕ 7:

DailySmokers.csv A A

  1. МАТЕМАТИЧЕСКАЯ МОДЕЛЬ

Импортируем библиотеки

Рисование графиков

Записывай строки из cvs файла в массив datas

Цикл от 1 до 5

Убираем первые три строки массива datas в массиве data

Добавляем странны в отдельный массив и сортируем и убираем дубли

Случайное число используем это число как номер странны

Добавляем в массив time отсортированное время

Добавляем в массивы значения которые соответствуют нашему параметру

На основе этих массивов рисуем графики

Считаем по данным СКО и среднее значение

Записываем эти данные в cvs и рисуем

  1. ОПИСАНИЕ РАЗРАБОТАННОЙ ПРОГРАММЫ

Код программы:

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. ПРИМЕРЫ РАБОТЫ ПРОГРАММЫ

Рисунок 1 - Результат работы

  1. ВЫВОДЫ

В ходе лабораторной работы я научился работать с cvs файлами, импортировать их в python и работать с данными из них, так же научился записывать проанализированные данные обратно в cvs

Соседние файлы в предмете Технология программирования