- •3) Создать массив размерностью 5 на 5. Использовать срезы для доступа к частям массива:
- •4) Выполнить простые арифметические операции с массивами. Создать две матрицы (с которыми можно выполнять указанные операции)
- •5) Ознакомится с универсальными функциями. Для этого также создать два двумерных
- •6) Работа с многомерными массивами. Создать два двухмерных массива и применить к ним следующие функции:
- •Import numpy as np
- •Import numpy as np
Лабораторная работа №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)