python - numpy数组中给定值的凸包 - python 2.7
问题描述
对于给定的数组(如下面的建议)和给定的值(此处为 0),我想计算在同一个凸包上可以关联多少个 0。
大批 :
1 2 4 5 8 9 7
4 0 0 7 5 6 8
6 5 0 4 3 5 2
1 0 0 5 7 0 6
2 3 5 7 8 9 4
对于建议的数组,解决方案应该得到:[5, 1]
因为可以在第二行和第四行以及第二/第三列之间识别五个 0 的第一个“模式”。存在只有一个 0 的第二种模式。
你知道如何得到它吗?我知道如何计算 0 的数量。也许我可以用 numpy array 的 mask 选项做点什么?
最好的问候和感谢您的帮助,
解决方案
您正在寻找的是数组中的“连接组件”。Scipy 有一个方便的label
功能:
import numpy as np
from scipy.ndimage.measurements import label
a = np.array([
[1, 2, 4, 5, 8, 9, 7],
[4, 0, 0, 7, 5, 6, 8],
[6, 5, 0, 4, 3, 5, 2],
[1, 0, 0, 5, 7, 0, 6],
[2, 3, 5, 7, 8, 9, 4],])
labs, n_components = label(a==0)
component_sizes = [np.sum(labs==i) for i in range(1, n_components+1)]
print(component_sizes)
印刷[5, 1]
推荐阅读
- c# - 如何使用 EF 核心查询从多对多模型中获取一些对象?
- javascript - 使用 CSS Grid 并将每个 div 用作弹出模式的按钮,但它不起作用?
- excel - 如何添加由有效字符组成的不重复名称的工作表?
- node.js - 如何设置 Mocha 来查找我的内部项目模块?
- c++ - 在 C++ 中包装 fortran 函数:带有 LAPACK 的犰狳
- excel - EXCEL - Evaluate() 中使用的公式总是返回 VarType 10(错误),当它在单元格中运行良好时
- sapui5 - 是否可以在 UI5 中的片段加载(从另一个视图)上执行一个方法(最好是 onInit 方法)?
- django - 从视图中调用管理命令并创建文件
- c# - dotNetRDF Reasoners 是否打算以这种方式使用?
- c# - 嵌套列表对象上的 Lambda 查询