Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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
Performance 提取NumPy数组的索引_Performance_Numpy_Scipy_Scikit Learn_Scikit Image - Fatal编程技术网

Performance 提取NumPy数组的索引

Performance 提取NumPy数组的索引,performance,numpy,scipy,scikit-learn,scikit-image,Performance,Numpy,Scipy,Scikit Learn,Scikit Image,我有一个仅由0和1元素组成的NumPy数组,如下所示: import numpy as np data = np.array([[1, 1 , 0 , 0 , 0 , 0 , 1 , 0], [1, 1 , 1 , 1 , 1 , 1 , 1 , 0], [1, 1 , 1 , 1 , 1 , 1 , 1 , 0], [0, 0 , 1 , 1 , **1** , 1 , 1 , 0],

我有一个仅由0和1元素组成的NumPy数组,如下所示:

import numpy as np
data = np.array([[1, 1 , 0 , 0 , 0 , 0 , 1 , 0],
                 [1, 1 , 1 , 1 , 1 , 1 , 1 , 0],
                 [1, 1 , 1 , 1 , 1 , 1 , 1 , 0],
                 [0, 0 , 1 , 1 , **1** , 1 , 1 , 0],
                 [0, 0 , 1 , 1 , 1 , 1 , 1 , 1],
                 [1, 1 , 1 , 1 , 1 , 1 , 1 , 0],
                 [1, 1 , 0 , 0 , 0 , 0 , 0 , 0]])
我必须找出元素1的索引,元素1在每个方向上被1/2×2像素包围

预期答案的位置以粗体显示

我正在寻找更简单、更快的方法。

你可以用一些-

输出-

In [66]: print(R,C)
[3] [4]

本节中列出了一种替代方法,它可以执行与前一种方法相同的卷积,保持其余步骤相同。下面是获取卷积输出的代码
filt\u out
-

import scipy.ndimage
filt_out = scipy.ndimage.convolve(data,kernel)
你可以用一些-

输出-

In [66]: print(R,C)
[3] [4]

本节中列出了一种替代方法,它可以执行与前一种方法相同的卷积,保持其余步骤相同。下面是获取卷积输出的代码
filt\u out
-

import scipy.ndimage
filt_out = scipy.ndimage.convolve(data,kernel)
这很简单,只需一个:

这很简单,只需一个:


谢谢你的尝试。我投了赞成票。但是,我正在考虑使用scipy.ndimage来完成它。你能给我推荐一种替代方法吗?比如最大值过滤器,最小值过滤器?@EricBal我认为最大值或最小值过滤器在这里不起作用,但这些过滤器会在该窗口内寻找最大值。我们想要的是该窗口中的所有元素都是
one
。所以我们需要的是对该窗口内的所有元素求和,这样卷积就适合这里了。@EricBal用
ndimage
添加了另一种方法,这可能更容易理解?那么,filt\u out==np.sum(kernel.ravel())的含义是什么?谢谢您的尝试。我投了赞成票。但是,我正在考虑使用scipy.ndimage来完成它。你能给我推荐一种替代方法吗?比如最大值过滤器,最小值过滤器?@EricBal我认为最大值或最小值过滤器在这里不起作用,但这些过滤器会在该窗口内寻找最大值。我们想要的是该窗口中的所有元素都是
one
。所以我们需要的是对该窗口内的所有元素求和,这样卷积就适合这里了。@EricBal用
ndimage
添加了另一种方法,这可能更容易理解?那么,filt_out==np.sum(kernel.ravel())的含义是什么呢?