python - 如何找到不同值的坐标?
问题描述
[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 1 1 1 0 0 0 0 0 1 1 0 0 3 3 0 0 0 4 4 0 0 0 5 5 5 5 0 0 2 2 2 2 2 0 2 2 2 2 2 0 0 0 6 6 6 6 6 6 0 6 6 6 6]
[0 1 1 0 0 0 0 0 0 0 0 0 0 3 3 0 0 0 4 4 0 0 5 5 5 5 5 5 0 2 2 2 2 2 2 2 2 2 2 2 2 0 0 6 6 6 6 6 6 6 6 6 6 6]
[1 1 1 0 0 0 0 0 0 0 0 0 0 3 3 0 0 0 4 4 0 5 5 5 0 0 5 5 5 0 2 2 0 0 2 2 0 0 0 2 2 0 0 6 6 0 0 6 6 6 0 0 6 6]
[1 1 1 0 0 0 0 0 0 0 0 0 0 3 3 0 0 0 4 4 0 5 5 5 5 0 0 0 0 0 2 2 0 2 2 2 0 0 0 2 2 2 0 6 6 0 0 0 6 6 0 0 6 6]
[1 1 1 0 0 0 0 0 0 0 0 0 0 3 3 0 0 0 4 4 0 0 5 5 5 5 5 5 0 0 2 2 0 2 2 2 0 0 0 2 2 2 0 6 6 0 0 0 6 6 0 0 6 6]
[0 1 1 0 0 0 0 0 0 7 0 0 0 3 3 0 0 0 4 4 0 0 0 0 5 5 5 5 5 0 2 2 0 2 2 2 0 0 0 2 2 2 0 6 6 0 0 0 6 6 0 0 6 6]]
以下是列表的连接组件列表(50 x 10),我们labels
称之为0
例如[xmin,xmax,ymin,ymax]
,
我们以 1 为例:
{'1': [0,10,1,9], '2': [......}
作为 python 的新手,我发现很难从头开始编写一个程序来做到这一点(不是字典的创建和填充,而是找到坐标)。numpy 中有没有办法可以做到这一点,例如np.unique(labels)
可以帮助我识别唯一的标签值。
解决方案
你需要使用np.where
. 它返回两个数组:
- 第一个包含行索引y
- 第二个包含列索引x
。
import nupmy as np
arr = np.array(labels)
stats = dict()
for i in np.unique(arr):
if i == 0:
continue
else:
wh = np.where(arr == i)
stats[i] = [wh[1].min(), wh[1].max(), wh[0].min(), wh[0].max()]
> {1: [0, 10, 1, 9],
2: [29, 41, 2, 9],
3: [13, 14, 4, 9],
4: [18, 19, 4, 9],
5: [21, 28, 4, 9],
6: [43, 53, 4, 9],
7: [9, 9, 9, 9]}
推荐阅读
- swift - Swift iOS - 我为什么可以循环遍历一组类对象并进行属性更改但不能更改结构
- python-3.x - 如何在运行时检查类中的参数和方法的数量
- sql - 用户登录时如何在新表中插入或更新登录时间
- angular - 在 Angular 2+ 中上传文件时出现错误 400
- r - cbind 或合并多个变量
- ios - 在 iOS 中本地化时防止日期转换
- html - kate - 正则表达式 - 查找和替换从 href 到 "> 的部分 URL
- r - R:根据因子水平的图例颜色
- java - Java WeakHashMap 清理
- python - 在python中创建短而窄的表,列中有列表