Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python用于二维矩阵上的循环过滤器/窗口?_Python_Matrix_Filtering_Windowing - Fatal编程技术网

Python用于二维矩阵上的循环过滤器/窗口?

Python用于二维矩阵上的循环过滤器/窗口?,python,matrix,filtering,windowing,Python,Matrix,Filtering,Windowing,我想创建一个能够以循环方式过滤的代码。我需要过滤这些数据,以便能够分析这些数据 例如,我有这些数据 data=[[1,1,1,1,1], [2,2,2,2,2], [3,3,3,3,3], [4,4,4,4,4], [5,5,5,5,5]] 我只使用了scipy的过滤器,但是它只适用于array/multiarray。它一行一行地做。因此,它只会使输出形状像一个盒子或钟。我需要把它做成圆形/油炸圈饼 到目前为止,我只是设法做到了这一点 data=

我想创建一个能够以循环方式过滤的代码。我需要过滤这些数据,以便能够分析这些数据

例如,我有这些数据

data=[[1,1,1,1,1],
      [2,2,2,2,2],
      [3,3,3,3,3],
      [4,4,4,4,4],
      [5,5,5,5,5]]
我只使用了scipy的过滤器,但是它只适用于array/multiarray。它一行一行地做。因此,它只会使输出形状像一个盒子或钟。我需要把它做成圆形/油炸圈饼

到目前为止,我只是设法做到了这一点

data=[[0,0,0,0,0],
      [0,2,2,2,0],
      [0,3,3,3,0],
      [0,4,4,4,0],
      [0,0,0,0,0]]
有什么方法可以实现一个圆矩阵作为一个过滤器,使所有其他值都为0,但使圆的内部值保持不变

我想要这种输出

data=[[0,0,0,0,0],
      [0,0,2,0,0],
      [0,3,3,3,0],
      [0,0,4,0,0],
      [0,0,0,0,0]]
如果可能的话,我可以让它控制圆的厚度,这样我就可以有一个像这个成品一样的甜甜圈过滤器吗

data=[[0,0,0,0,0],
      [0,0,2,0,0],
      [0,3,0,3,0],
      [0,0,4,0,0],
      [0,0,0,0,0]]

欢迎来到Stackoverflow!我问自己的问题是:“什么是圆?”。如果你只处理5×5个形状的物体,你可以定义一个严格的形式,但是如果你处理任何其他的大小,你就必须定义,“圆”实际上意味着……圆是一个完美的圆,即使在[ 200到500 ]矩阵或[200到200 ]矩阵中,圆仍然是在矩阵的中间。使用(pi*r^2)的概念,也许我会重新问这个问题。1和2是你想要的圈吗?你会帮他们选哪种厚度?我建议您编写一个函数,用0和1创建圆,然后在原始矩阵上迭代,如果值为1,则保留该值,如果值为0,则忽略该值。这样做可以将您的问题简化为“什么是圆”。现在我使用的是200x200矩阵,圆的大小需要位于中心,并且可以调整大小和厚度。我计划在循环矩阵上进行元素乘法(就像你写的那样),但是这是一项繁琐的工作,而且是不可调整的循环。