Как расширить матрицу по значению python? Имеется матрица долготы, необходимо добавить значения вокруг каждого элемента. Нашел инструмент numpy.pad, но он добавляет элементы вокруг матрицы. А нужно вокруг каждого значения, расширяя матрицу.Например матрица [[1,2], [3,4]] должна превратиться в
[[[0.1, 0.2, 0.3],
[0.2, 1, 0.2],
[0.3, 0.2, 0.3], [...][...]
Вокруг 1 должны появиться новые задаваемые значении и т.д.

21 Авг 2019 в 06:03
210 +1
0
Ответы
1

Для расширения матрицы вокруг каждого значения можно воспользоваться следующим подходом:

Создать новую матрицу с увеличенными размерами.Заполнить новую матрицу значениями вокруг каждого элемента исходной матрицы.

Пример решения на Python:

import numpy as np
def expand_matrix(matrix, value):
m, n = matrix.shape
new_matrix = np.zeros((m + 2, n + 2))
for i in range(m):
for j in range(n):
new_matrix[i+1, j+1] = matrix[i, j]
# Заполнение значений вокруг каждого элемента
for i in range(1, m+1):
for j in range(1, n+1):
new_matrix[i-1, j-1] = value # Значение слева сверху
new_matrix[i-1, j] = value # Значение сверху
new_matrix[i-1, j+1] = value # Значение справа сверху
new_matrix[i, j-1] = value # Значение слева
new_matrix[i, j+1] = value # Значение справа
new_matrix[i+1, j-1] = value # Значение слева снизу
new_matrix[i+1, j] = value # Значение снизу
new_matrix[i+1, j+1] = value # Значение справа снизу
return new_matrix
matrix = np.array([[1, 2], [3, 4]])
expanded_matrix = expand_matrix(matrix, 0.1)
print(expanded_matrix)

Этот код создает новую матрицу, вокруг каждого значения которой добавляет заданное значение.

20 Апр 2024 в 13:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир