- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 2D numpy 数组,其中填充了从 0 到 N 的整数值,我如何才能获得直接连接并共享相同值的所有条目的索引。
补充:大部分条目为零,可以忽略!
示例输入数组:
[ 0 0 0 0 0 ]
[ 1 1 0 1 1 ]
[ 0 1 0 1 1 ]
[ 1 0 0 0 0 ]
[ 2 2 2 2 2 ]
希望的输出指标:
1: [ [1 0] [1 1] [2 1] [3 0] ] # first 1 cluster
[ [1 3] [1 4] [2 3] [2 4] ] # second 1 cluster
2: [ [4 0] [4 1] [4 2] [4 3] [4 4] ] # only 2 cluster
输出数组的格式并不重要,我只需要可以处理单个索引的分离值簇
我首先想到的是:
N = numberClusters
x = myArray
for c in range(N):
for i in np.where(x==c):
# fill output array with i
但这错过了具有相同值的集群的分离
最佳答案
您可以使用 skimage.measure.label
(如果需要,使用 pip install scikit-image
安装它)为此:
import numpy as np
from skimage import measure
# Setup some data
np.random.seed(42)
img = np.random.choice([0, 1, 2], (5, 5), [0.7, 0.2, 0.1])
# [[2 0 2 2 0]
# [0 2 1 2 2]
# [2 2 0 2 1]
# [0 1 1 1 1]
# [0 0 1 1 0]]
# Label each region, considering only directly adjacent pixels connected
img_labeled = measure.label(img, connectivity=1)
# [[1 0 2 2 0]
# [0 3 4 2 2]
# [3 3 0 2 5]
# [0 5 5 5 5]
# [0 0 5 5 0]]
# Get the indices for each region, excluding zeros
idx = [np.where(img_labeled == label)
for label in np.unique(img_labeled)
if label]
# [(array([0]), array([0])),
# (array([0, 0, 1, 1, 2]), array([2, 3, 3, 4, 3])),
# (array([1, 2, 2]), array([1, 0, 1])),
# (array([1]), array([2])),
# (array([2, 3, 3, 3, 3, 4, 4]), array([4, 1, 2, 3, 4, 2, 3]))]
# Get the bounding boxes of each region (ignoring zeros)
bboxes = [area.bbox for area in measure.regionprops(img_labeled)]
# [(0, 0, 1, 1),
# (0, 2, 3, 5),
# (1, 0, 3, 2),
# (1, 2, 2, 3),
# (2, 1, 5, 5)]
可以使用非常有用的函数 skimage.measure.regionprops
找到边界框,其中包含有关该地区的大量信息。对于边界框,它返回一个 (min_row, min_col, max_row, max_col)
的元组,其中属于边界框的像素在半开区间 [min_row; max_row)
和 [min_col; max_col)
.
关于python - numpy 二维数组 : get indices of all entries that are connected and share the same value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49771746/
我有一个 TableView,每个单元格的附件都设置为“披露指示器”,它工作正常。 然后,我决定在使用外部来源的数据更新每个单元格时添加一个事件指示器。为此,我设置了: cell.accessoryV
我正在尝试遵循来自 here 的公认解决方案在 Xcode 6.3.2 上,但指示器拒绝显示,或者由于某种原因我在 iPhone 6 plus 上看不到它。没有错误消息、带有标题的警告等显示,并且空白
我的 JavaFX 应用程序计算另一个文件夹下一层的每个文件夹的大小。我的问题是,当我点击“应用”按钮(该按钮在另一个类中开始计算)时,我想要一个不确定的进度指示器来向用户显示该应用程序正在运行并且尚
One of the biggest causes of instability in Elasticsearch is fielddata: field values have to be load
我在实验宇宙学中做一些模拟,在使用 numpy 数组时遇到了这个问题。我是 numpy 的新手,所以我不确定我是否做错了或者这是一个错误。我跑: Enthought Python Distributi
我有一个结构数组,这些结构基本上是形成一条边的两个点。由于性能,我使用结构。 现在我有对象 A 保存边缘和这个对象中的一个方法来告诉另一个对象 B 关于这个边缘数组中的连续边缘列表。 边缘: e0 e
我正在使用 Elasticsearch ( Official PHP client) 开发一个 PHP 网站。 我正在编写需要确定新插入文档的测试在继续之前准备好搜索。 为此,在索引新文档后,我调用:
我是 DirectX 12 的新手,正在尝试在 DX 上渲染网格。到目前为止,我成功地从 obj 和 fbx 文件中检索顶点和索引,并使用模板通用窗口项目在 DX 12 上渲染所有顶点。但是,我遇到了
我是 DirectX 12 的新手,正在尝试在 DX 上渲染网格。到目前为止,我成功地从 obj 和 fbx 文件中检索顶点和索引,并使用模板通用窗口项目在 DX 12 上渲染所有顶点。但是,我遇到了
我正在使用 StratifiedKFold 创建用于拆分数据的索引。它给了我索引超出范围的错误。 Xdev的索引从0到47503。 cv_index 变量的 min 和 max 索引分别为 0 和 1
我想绘制以下 UIPageControl 指示器: 我目前有以下代码,结果是: if (isHighlighted) { UIBezierPath *ovalPath = [UIBezierP
我们在以下用例中使用 elasticsearch。 Elasticsearch 版本:5.1.1 注意:我们使用的是 AWS 托管的 ElasticSearch 我们有一个 Multi-Tenancy
我正在尝试使用 scikit-learn 中的算法根据大量输入来预测输出。我似乎收到错误“索引过多”,但无法弄清楚原因。 CSV 文件训练: 1.1 0.2 0.1 0 0.12 0
在this page的底部从 Python 2.3 文档中它说: slice objects now have a method indices(length) which, given the le
我在主线程上做一些繁重的计算,这些计算不能在单独的线程上运行。 我想在这些计算运行时在应用程序 UI 上显示一个“忙碌指示器”(即旋转小部件)。因此,我无法在主线程上显示繁忙指示器,因为在这些计算运行
我有一个名为 memory_region 的类,有点像未类型化的 gsl::span (即它本质上是一个 void* 和一个 size_t ),我也将其用于类型删除。因此它有一个 as_span()方
我一直在寻找如何将 Tablayout 中的指示器更改为圆形,就像这样 但我不知道该怎么做,任何帮助! 最佳答案 来自source code ,标签指示器定义为: @dimen/de
我在哪里可以找到可绘制的 Android“向上”按钮以便我可以对其进行自定义?或者它的文件名是什么,以便我可以快速搜索以在 sdk 目录中找到它? 最佳答案 正如您在 default style 中看
我遇到了 ViewPager 的另一个问题,我现在无法用我目前的知识解决它。 我有带 ViewPager 的 TabPageIndicator,在每个选项卡上,我都显示文本。这是简单的 TextVie
我将如何制作一个自定义指示器,该指示器将使用可绘制对象和用于 SwipeRefreshLayout 的自定义动画? 我查看了 SwipeRefreshLayout 的源代码,发现 CircleImag
我是一名优秀的程序员,十分优秀!