如何比较上下的数组?

时间:2018-06-07 16:54:51

标签: python numpy

我是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 :(得分:0)

执行此类操作的最佳方法是使用scipy.signal.convolve2d:

您可以使用所需的数字模式制作第二个矩阵,例如

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

这将返回一个新的矩阵,其中心减去周围环境的总和。

答案 1 :(得分:0)

来源: 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