如果与非零值相邻,则将所有相邻数组项设置为等于1

时间:2018-08-26 17:43:41

标签: python

我正在寻找一种有效的方法来将与非零值相邻的所有数组索引设置为等于1。因此,例如,如果我有一个名为arr的数组,其外观如下:

import numpy as np
arr = np.zeros((5,5))
arr[1,1] = arr[2,2] = arr[3,3] = arr[0,5] = 1

arr
# array([[ 0.,  0.,  0.,  0.,  0.],
#        [ 0.,  1.,  0.,  0.,  0.],
#        [ 0.,  0.,  1.,  0.,  0.],
#        [ 0.,  0.,  0.,  1.,  0.],
#        [ 1.,  0.,  0.,  0.,  0.]])

是否有一种简单的方法来获取名为arr2的数组,该数组可以保留所有非零值,还可以将左/右和上/下邻居设置为等于1的非零值?因此,在这个可重现的小示例中,我想要一个看起来像这样的结果:

arr2
# array([[ 0.,  1.,  0.,  0.,  0.],
#        [ 1.,  1.,  1.,  0.,  0.],
#        [ 0.,  1.,  1.,  1.,  0.],
#        [ 1.,  0.,  1.,  1.,  1.],
#        [ 1.,  1.,  0.,  1.,  0.]])

不考虑对角邻居。

1 个答案:

答案 0 :(得分:0)

根据评论(@ Code-Apprentice),这是我能够解决的问题。看起来不是很“ pythonic”(即优雅),但是a,它可以完成工作。我在想,对于更大的“现实世界”应用程序,可以使用暴力破解方法的一种更简单的替代方法。

const server = http.createServer((req,res)=>{

const parsedUrl = url.parse(req.url,true);

const path = parsedUrl.pathname;
const trimmedPath = path.replace(/^\/+|\/+$/g,'')

if(trimmedPath == "watch"){

    var data = await GetData();

            // here where i need to stuck sending the ejs template with data

}

})