Введение
В рамках этого испытания вам предстоит попрактиковаться в использовании модуля NumPy на языке Python. Вы реализуете несколько распространенных функций для работы с массивами NumPy, охватывающих фундаментальные математические операции и преобразования структур данных. Все необходимые файлы уже созданы и доступны в проводнике слева.
Поэлементное умножение
Ваша первая задача — создать функцию, которая выполняет поэлементное умножение двух массивов NumPy. Это означает, что каждый элемент первого массива умножается на соответствующий ему элемент во втором массиве.
Задание
- Допишите функцию
multiply_arraysв файлеmultiply_arrays.py.
Требования
- Функция должна называться
multiply_arrays. - Она должна принимать два массива NumPy,
aиb, в качестве входных данных. - Она должна возвращать новый массив NumPy, являющийся результатом поэлементного умножения
aиb. - Входные массивы всегда будут иметь одинаковую форму (shape).
Пример
После реализации функции запустите скрипт, чтобы проверить результат:
python3 multiply_arrays.py
Вывод:
Input a: [1 2 3]
Input b: [4 5 6]
Element-wise multiplication result: [4 10 18]
Expected: [4 10 18]
Матричное умножение
Далее вам необходимо реализовать матричное умножение. В отличие от поэлементного умножения, матричное умножение следует правилам линейной алгебры и требует, чтобы внутренние размерности двух матриц были согласованы.
Задание
- Допишите функцию
matrix_multiplyв файлеmatrix_multiply.py.
Требования
- Функция должна называться
matrix_multiply. - Она должна принимать два массива NumPy,
aиb, в качестве входных данных. - Она должна возвращать новый массив NumPy, являющийся результатом матричного произведения
aиb. - Входные массивы будут иметь подходящие формы для матричного умножения.
Пример
После реализации функции запустите скрипт, чтобы проверить результат:
python3 matrix_multiply.py
Вывод:
Input matrix a:
[[1 2]
[3 4]]
Input matrix b:
[[5 6]
[7 8]]
Matrix multiplication result:
[[19 22]
[43 50]]
Expected:
[[19 22]
[43 50]]
Транспонирование массива
На этом этапе вы напишете функцию для транспонирования массива NumPy. Транспонирование массива меняет местами его строки и столбцы.
Задание
- Допишите функцию
transpose_arrayв файлеtranspose_array.py.
Требования
- Функция должна называться
transpose_array. - Она должна принимать один массив NumPy
aв качестве входных данных. - Она должна возвращать транспонированную версию входного массива.
Пример
После реализации функции запустите скрипт, чтобы проверить результат:
python3 transpose_array.py
Вывод:
Original array:
[[1 2 3]
[4 5 6]]
Transposed array:
[[1 4]
[2 5]
[3 6]]
Expected:
[[1 4]
[2 5]
[3 6]]
Изменение формы массива
Теперь вы создадите функцию для изменения формы (reshape) массива NumPy. Изменение формы меняет размерности массива без изменения содержащихся в нем данных. Общее количество элементов должно оставаться неизменным.
Задание
- Допишите функцию
reshape_arrayв файлеreshape_array.py.
Требования
- Функция должна называться
reshape_array. - Она должна принимать массив NumPy
aи кортежshapeв качестве входных данных. - Она должна возвращать новый массив с данными из
a, но с новыми размерностями, указанными вshape.
Пример
После реализации функции запустите скрипт, чтобы проверить результат:
python3 reshape_array.py
Вывод:
Original array: [1 2 3 4 5 6]
New shape: (2, 3)
Reshaped array:
[[1 2 3]
[4 5 6]]
Expected:
[[1 2 3]
[4 5 6]]
Вычисление евклидова расстояния
Евклидово расстояние — это стандартный способ измерения расстояния между двумя точками по прямой. Ваша задача — реализовать функцию, которая вычисляет это расстояние между двумя одномерными массивами NumPy.
Формула евклидова расстояния между двумя векторами a и b выглядит следующим образом:
$$ d(a, b) = \sqrt{\sum_{i=1}^{n}(a_i - b_i)^2} $$
Задание
- Допишите функцию
euclidean_distanceв файлеeuclidean_distance.py.
Требования
- Функция должна называться
euclidean_distance. - Она должна принимать два одномерных массива NumPy,
aиb, одинаковой длины. - Она должна возвращать одно число с плавающей точкой, представляющее евклидово расстояние между ними.
Пример
После реализации функции запустите скрипт, чтобы проверить результат:
python3 euclidean_distance.py
Вывод:
Point a: [1 2 3]
Point b: [4 5 6]
Euclidean distance: 5.196152422706632
Expected: 5.196152422706632
Резюме
В этом испытании вы закрепили навыки выполнения фундаментальных операций в NumPy. Вы реализовали функции для поэлементного и матричного умножения, транспонирования и изменения формы массивов, а также для вычисления евклидова расстояния. Эти навыки критически важны для анализа данных, машинного обучения и научных вычислений на языке Python.



