Лабораторная работа №7
Использование NumPy и MatPlotLib
Задание
-
Библиотека NumPy имеет очень быстрые алгоритмы работы с массивами. Убедитесь в этом, сравнив время выполнения операции поэлементного перемножения стандартных списков и массивов NumPy (
numpy.array
). Для каждого случая создайте два массива в 1 миллион элементов, заполненных случайными значениями чисел, и перемножьте их (в NumPy для этого служит функцияnumpy.multiply()
). Чтобы замерить время выполнения, воспользуйтесь функциейperf_counter
из библиотекиtime
. -
Подгрузите один из двух приложенных файлов
data1.csv
иdata2.csv
. Выделите данные из столбцов, указанных в вашем варианте и сгенерируйте из них график (дляdata1.csv
) или гистограмму (дляdata2.csv
). В первом случае необходимо вывести два графика, наложенные друг на друга, а также график корреляции. Во втором случае: гистограмму, нормализованную гистограмму и среднеквадратичное отклонение. Количество столбцов в гистограмме произвольное, но не менее 16. Каждый график должен содержать заголовок и подписи по осям. -
Постройте трёхмерный график согласно формуле из вашего варианта. Используйте
Axes3d
. В интервалах потребуетсяnp.linspace()
.
Варианты
Вариант | Файл | Столбец(-цы) | Формулы |
---|---|---|---|
1 | data1.csv | 1 от 4 и 5 | x∈(-π;π); y=x; z=tg(x) |
2 | data2.csv | 1 | x∈(-2π;2π); y=sin(x)cos(x); z=sin(x)cos(x) |
3 | data1.csv | 1 от 4 и 18 | x∈(-5π;5π); y=cos(x); z=sin(x) |
4 | data2.csv | 2 | x∈(-5;5); y∈(-5;5); z=sin(x^y) |
5 | data1.csv | 1 от 4 и 16 | x∈(-π;π); y=sin(x)cos(x); z=sin(x) |
6 | data2.csv | 3 | x∈(-π;π); y=1/x; z=sin(x) |
7 | data1.csv | 1 от 4 и 10 | x∈(-10;10); y∈(-0,5;0,5); z=tg(x+y) |
8 | data2.csv | 4 | x∈(-3π;3π); y=cos(x); z=x/sin(x) |
9 | data1.csv | 1 от 10 и 16 | x∈(-5π;5π); y∈(-5π;5π); z=y cos(x) |
10 | data2.csv | 5 | x∈(-3π;3π); y=x cos(x); z=sin(x) |
Дополнительное задание
Создайте анимированный график функции y = sin(x) при помощи PillowWriter
.
Полезные ссылки
NumPy: https://habr.com/ru/post/352678/
MatPlotLib: https://pyprog.pro/mpl/mpl_short_guide.html
PillowWriter: https://matplotlib.org/stable/api/_as_gen/matplotlib.animation.PillowWriter.html