Мы собрали все ваши действия с тренировочной выборкой в функцию get_feature_engineering_matrix. На вход ей нужно подавать массив matrix. Функция вернёт его с изменениями.

  1. С помощью функции get_feature_engineering_matrix переопределите переменную matrix_X_train с входными признаками тренировочной выборки. Выведите первые пять строк массива, который получился.
  2. Сделайте то же самое для переменной matrix_X_test с входными признаками тестовой выборки.
# необходимые импорты
import numpy as np

def get_feature_engineering_matrix(matrix):
    # общая и жилая площади квартир, их соотношение
    total_area = matrix[:, 0]
    living_area = matrix[:, 1]
    living_to_total = living_area / total_area
    # добавление нового столбца с соотношением площадей
    matrix = np.insert(matrix, 1, living_to_total, axis=1)
    # удаление лишнего столбца с жилой площадью
    matrix = np.delete(matrix, 2, axis=1)
    # добавление столбца с константой
    matrix = np.insert(matrix, 0, 1, axis=1)
    return matrix
# считывание npy-файлов
matrix_X_train = np.load('matrix_X_train.npy')
matrix_X_test = np.load('matrix_X_test.npy')

# обработка матрицы с входными признаками тренировочной выборки
matrix_X_train = get_feature_engineering_matrix(matrix_X_train)
# вывод первых пяти строк полученной матрицы
print(matrix_X_train[:5])

# обработка матрицы с входными признаками тестовой выборки
matrix_X_test = get_feature_engineering_matrix(matrix_X_test)
# вывод первых пяти строк полученной матрицы
print(matrix_X_test[:5])