微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python-将二进制图像数据帧转换为欧几里得坐标

我正在寻找一个图像的数据框,该图像是False / True的二进制布尔值,并将其转换为数据框为true的坐标数组.

例如,如果index [4]和column [8]为true,则它将4,8添加到数组中.

解决方法:

IIUC您可以通过以下方式进行操作:

In [70]: df
Out[70]:
       a      b      c
0   True  False   True
1   True   True  False
2  False   True   True
3  False   True   True
4   True  False  False
5  False   True  False
6   True  False  False
7  False   True  False
8  False  False   True
9   True  False   True

In [71]: np.dstack(np.nonzero(df.values))[0]
Out[71]:
array([[0, 0],
       [0, 2],
       [1, 0],
       [1, 1],
       [2, 1],
       [2, 2],
       [3, 1],
       [3, 2],
       [4, 0],
       [5, 1],
       [6, 0],
       [7, 1],
       [8, 2],
       [9, 0],
       [9, 2]], dtype=int64)

要么:

In [76]: np.stack(np.nonzero(df.values)).T
Out[76]:
array([[0, 0],
       [0, 2],
       [1, 0],
       [1, 1],
       [2, 1],
       [2, 2],
       [3, 1],
       [3, 2],
       [4, 0],
       [5, 1],
       [6, 0],
       [7, 1],
       [8, 2],
       [9, 0],
       [9, 2]], dtype=int64)

设定:

df = pd.DataFrame(np.random.choice([True, False], (10, 3)), columns=list('abc'))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐