Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Python 2 / Лаба 7 / Лабораторная №7.docx
Скачиваний:
6
Добавлен:
10.05.2024
Размер:
288.07 Кб
Скачать

Лабораторная работа №6

Цель работы: ознакомление и практическое использование наследования, полиморфизма, инкапсуляции классов Python.

Ход работы

Задание 1:

2)Создать произвольный массив несколькими способами:

np.array() - преобразование массива в массив numpy

np.zeros() – создать массив из 0

np.ones() – создать массив из 1

np.linspace() – заполняет массив с шагом от нижней границы до верхней

np.eye() – создает единичную матрицу

import numpy as np

print("2)")

# Преобразование списка в массив numpy

arr1 = np.array([1, 2, 3, 4, 5])

print("Массив, созданный из списка:", arr1)

# Создание массива из нулей

arr2 = np.zeros(5) # массив из 5 элементов, заполненных нулями

print("Массив из нулей:", arr2)

# Создание массива из единиц

arr3 = np.ones((3, 3)) # матрица 3x3, заполненная единицами

print("Массив из единиц:\n", arr3)

# Создание массива с заданным количеством элементов, заполненных значениями от 0 до 10 с равными интервалами

arr4 = np.linspace(0, 10, 15) # 15 значений от 0 до 10

print("Массив, созданный с использованием linspace:\n", arr4)

# Создание единичной матрицы

arr5 = np.eye(4) # 4x4 единичная матрица

print("Единичная матрица:\n", arr5)

print('\n' * 2)

3) Создать массив размерностью 5 на 5. Использовать срезы для доступа к частям массива:

А) центральный элемент массива;

Б) срез элементов массива не включая первый два столбца;

В) срез элементов массива не включая последние два столбца;

Г) срез элементов массива, состоящих из 2 и 3 столбца.

Синтаксис применение срезов к массивам созданным в numpy аналогичен спискам.

# Создание массива размерностью 5 на 5

arr = np.arange(25).reshape(5, 5)

print("Исходный массив:\n", arr)

# А) Центральный элемент массива

center_element = arr[2, 2]

print("Центральный элемент массива:", center_element)

# Б) Срез элементов массива, не включая первые два столбца

slice_a = arr[:, 2:]

print("Срез элементов массива, не включая первые два столбца:\n", slice_a)

# В) Срез элементов массива, не включая последние два столбца

slice_b = arr[:, :3]

print("Срез элементов массива, не включая последние два столбца:\n", slice_b)

# Г) Срез элементов массива, состоящий из 2 и 3 столбца

slice_c = arr[:, 1:3]

print("Срез элементов массива, состоящий из 2 и 3 столбца:\n", slice_c)

print('\n' * 2)

4) Выполнить простые арифметические операции с массивами. Создать две матрицы (с которыми можно выполнять указанные операции)

заполненные произвольными числами (матрицу из 0, из 1 и их комбинация создавать нельзя)

np.add(), np.subtract(), np.multiply(), np.divide()

# Создание двух матриц произвольных чисел

matrix1 = np.random.randint(1, 10, size=(3, 3)) # Матрица размером 3x3 со случайными числами от 1 до 10

matrix2 = np.random.randint(1, 10, size=(3, 3)) # Еще одна матрица размером 3x3 со случайными числами от 1 до 10

print("Первая матрица:\n", matrix1)

print("Вторая матрица:\n", matrix2)

# Выполнение арифметических операций с массивами

sum_matrix = np.add(matrix1, matrix2) # Сложение матриц

diff_matrix = np.subtract(matrix1, matrix2) # Вычитание матриц

product_matrix = np.multiply(matrix1, matrix2) # Поэлементное умножение матриц

quotient_matrix = np.divide(matrix1, matrix2) # Поэлементное деление матриц

print("Сумма матриц:\n", sum_matrix)

print("Разность матриц:\n", diff_matrix)

print("Произведение матриц:\n", product_matrix)

print("Частное матриц:\n", quotient_matrix)

print('\n' * 2)

5) Ознакомится с универсальными функциями. Для этого также создать два двумерных

массива и применить нижеуказанные функции.

np.sin(), np.cos(), np.exp(), np.log(), np.logical_and(), np.logical_or(), np.logical_not()

# Создание двух двумерных массивов

arr1 = np.random.rand(3, 3) # Произвольный двумерный массив 3x3

arr2 = np.random.rand(3, 3) # Еще один произвольный двумерный массив 3x3

print("Первый массив:\n", arr1)

print("Второй массив:\n", arr2)

# Применение универсальных функций к массивам

sin_arr1 = np.sin(arr1) # Синус элементов первого массива

cos_arr2 = np.cos(arr2) # Косинус элементов второго массива

exp_arr1 = np.exp(arr1) # Экспонента элементов первого массива

log_arr2 = np.log(arr2) # Натуральный логарифм элементов второго массива

logical_and_arr = np.logical_and(arr1 > 0.5, arr2 < 0.5) # Логическое "И" для соответствующих элементов массивов

logical_or_arr = np.logical_or(arr1 > 0.5, arr2 < 0.5) # Логическое "ИЛИ" для соответствующих элементов массивов

logical_not_arr1 = np.logical_not(arr1) # Логическое "НЕ" для элементов первого массива

print("Синус элементов первого массива:\n", sin_arr1)

print("Косинус элементов второго массива:\n", cos_arr2)

print("Экспонента элементов первого массива:\n", exp_arr1)

print("Натуральный логарифм элементов второго массива:\n", log_arr2)

print("Логическое 'И' для соответствующих элементов массивов:\n", logical_and_arr)

print("Логическое 'ИЛИ' для соответствующих элементов массивов:\n", logical_or_arr)

print("Логическое 'НЕ' для элементов первого массива:\n", logical_not_arr1)

print('\n' * 2)

Соседние файлы в папке Лаба 7