迭代通过2d数组查看邻居,除了边界

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了迭代通过2d数组查看邻居,除了边界相关的知识,希望对你有一定的参考价值。

我有这个代码,我试图迭代一个2d(numpy)dims 300,350数组。我正在查看数组中的每个点[i,j],然后查看它的两个邻居[i + 1,j + 1]等(取决于角度)。我正在观察0度,45度,90度和135度的角度。我的问题是索引第一个i,j(角度= 0度)我将看i,j + 1和i,j-1。由于第一次迭代是在j = 0,因此我得到一个索引错误,因为j-1 = -1。我一直在努力寻找如何规避这个问题的时间。我的代码看起来像这样:

for i in range(trex.shape[0]): # ALL ROWS
    for j in range(trex.shape[1]): # ALL COLUMNS
        if shape[i,j] == 0:    # for 0 degree angles (shape is angles)
            if trex[i,j] > trex[i, j+1] and trex[i,j] > trex[i,j-1]: # conditions
                np.append(trex_other, trex[i,j])
            else:
                np.append(trex_other, 0)

我看所有的角度,但这只是我想要它做的一个例子。总结一下,我想在除2d数组周围边界之外的所有点迭代这个2d数组。任何帮助是极大的赞赏!

答案

从1到1的长度迭代

for i in range(1, trex.shape[0]-1): # MOST ROWS
    for j in range(1, trex.shape[1]-1): # MOST COLUMNS
           ...

以上是关于迭代通过2d数组查看邻居,除了边界的主要内容,如果未能解决你的问题,请参考以下文章

基于唯一值对 2D Numpy/CuPy 数组进行更快的迭代

在片段着色器中,为啥我不能使用平面输入整数来索引 sampler2D 的统一数组?

使用树来加速具有周期性边界条件的 3D 阵列上的最近邻搜索

有没有比使用 np.where 更快的方法来迭代一个非常大的 2D numpy 数组?

通过 MPI 发送和接收二维数组

检查二维数组中每个邻居的最快方法