Как сравнить массивы сверху и снизу? - PullRequest
0 голосов
/ 07 июня 2018

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

import numpy as np
import matplotlib.pylab as plt

    return 1/(1+np.exp(-x))
    #the array
X = np.array([[5,5,5,5,5,5,5,5,5,5,5,5],
            [5,4,1,0,1,1,1,0,1,1,1,5],
            [5,0,1,0,1,0,1,0,1,0,1,5],
            [5,0,1,0,1,0,1,0,1,0,1,5],
            [5,0,1,0,1,0,1,0,1,0,1,5],
            [5,0,1,0,1,0,1,0,1,0,1,5],
            [5,0,1,2,1,2,1,2,1,2,1,5],
            [5,0,1,0,1,0,1,0,1,0,1,5],
            [5,0,1,0,1,0,1,0,1,0,1,5],
            [5,0,1,0,1,0,1,0,1,0,1,5],
            [5,0,1,0,1,0,1,0,1,0,3,5],
            [5,5,5,5,5,5,5,5,5,5,5,5]])

print(X)

Это выводит

[[5 5 5 5 5 5 5 5 5 5 5 5]
 [5 4 1 0 1 1 1 0 1 1 1 5]
 [5 0 1 0 1 0 1 0 1 0 1 5]
 [5 0 1 0 1 0 1 0 1 0 1 5]
 [5 0 1 0 1 0 1 0 1 0 1 5]
 [5 0 1 0 1 0 1 0 1 0 1 5]
 [5 0 1 2 1 2 1 2 1 2 1 5]
 [5 0 1 0 1 0 1 0 1 0 1 5]
 [5 0 1 0 1 0 1 0 1 0 1 5]
 [5 0 1 0 1 0 1 0 1 0 1 5]
 [5 0 1 0 1 0 1 0 1 0 3 5]
 [5 5 5 5 5 5 5 5 5 5 5 5]]

В качестве примера, сравнивая 4 с выше 5 и ниже0, чтобы он мог принять решение на основе соседних чисел.Мне также нужно сравнить их слева и справа, поэтому переформатирование массива на 90 градусов не сработает.

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Источник: https://docs.scipy.org/doc/numpy/reference/generated/numpy.array_equal.html

import numpy as np
p = np.array_equal([1, 2], [1, 2])
print(p) # True 
c = np.array_equal([1, 2], [1, 2, 3])
print(c) # False
0 голосов
/ 07 июня 2018

Лучший способ сделать это - использовать scipy.signal.convolve2d:

. Вы можете создать вторую матрицу с желаемым числовым шаблоном, таким как

[[0,-1,0],[-1,1,-1],[0,-1,0]]

. Это вернет новыйматрица с центром минус сумма окружения.

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