仅获取2D数组的内部元素

时间:2018-02-08 02:14:21

标签: python numpy

我有一个类似下面的矩阵:

CFDictionarySetValue(myDictionary, kCGPDFContextUserPassword, CFSTR("userpassword"));
CFDictionarySetValue(myDictionary, kCGPDFContextOwnerPassword, CFSTR("ownerpassword"));

如何仅提取内部数字,使得它们对于任何大小的数组都有8个邻居?

2 个答案:

答案 0 :(得分:3)

这应该有效:

test_numpy_array[1:-1, 1:-1]

答案 1 :(得分:0)

如果您正在寻找有关确定每个元素是否为局部最小值的帮助,您应该编辑原始帖子以反映这一点。

无论如何,这里有一些代码可以帮助您朝着正确的方向前进。不确定你是想要打印,还是得到2D布尔区域或什么,但这应该让你足够接近。

def is_local_min(a, r, c):
    for i in range(r-1, r+2):
        for j in range(c-1, c+2):
            if i == r and j == c:
                continue
            if a[i][j] < a[r][c]:
                return False
    return True


def get_local_mins(arr):
    local_mins = []
    for i in range(1, np.shape(arr)[0]-1):
        for j in range(1, np.shape(arr)[1]-1):
            if is_local_min(arr, i, j):
                local_mins.append((i, j))
    return local_mins