проблема с numpy

добрый день. мое сомнение - следующее.

Имея matrix X, такой, что:

x = [
   [1, 1, 1, 1],
   [2, 2, 2, 2],
   [3, 3, 3, 3],
   [4, 4, 4, 4]
]

Как смог бы iteral массив, чтобы вычислять средний показатель соседней стоимости, не получая IndexErros?

MatrizConMedia[i, j] = (x[i, j-1] + x[i-1, j] + x[i, j+1] + x[i+1, j]) / 4

Моя первая идея была:

for i in range(x.shape[0]):
    for j in range(x.shape[1]):

но в первую, что coje стоимость вне массива, вместо того, чтобы это заменять на 0, возвращает мне ошибку прямо. Большое спасибо всем, и большое спасибо в течение Вашего времени.

1
задан 05.11.2019, 00:41
1 ответ

Возможное решение состоит в том, чтобы ты проверил индексы для того, чтобы ты не попробовал соглашаться на сайт в договоренности, которая не существует или которая не является тем, которого ты хочешь.

import numpy as np

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

print("Matrix\n{}".format(x))

MatrizConMedia = np.zeros(x.shape)
for i in range(x.shape[0]):
    for j in range(x.shape[1]):
        if i > 0:
            MatrizConMedia[i, j] += x[i - 1, j]
        if i < x.shape[0] - 1:
            MatrizConMedia[i, j] += x[i + 1, j]
        if j > 0:
            MatrizConMedia[i, j] += x[i, j - 1]
        if j < x.shape[1] - 1:
            MatrizConMedia[i, j] += x[i, j + 1]
MatrizConMedia /= 4

print("Matrix de promedio de vecinos\n{}".format(MatrizConMedia))
0
ответ дан 01.12.2019, 12:46

Теги

Похожие вопросы