繁体   English   中英

将mask(boolean)数组转换为x,y坐标列表

[英]Convert mask (boolean) array to list of x,y coordinates

我有一个'mask'(布尔)2D数组,我想把它转换成一个坐标列表。 什么是适当的numpythonic方式呢?

输入将是这样的:

[[False,False,True],
 [False,True,False]]

并给出上述输入,输出应为:

[(0,2),(1,1)]

采用

  • np.where :如果你想稍后用它索引另一个数组,可以使用它。 但结果并不完全符合您的要求。
  • np.argwhere :如果你想要你的指定结果。 但是此结果不能用于索引另一个数组。

一些示例代码:

import numpy as np
a = np.array([[False,False,True],
              [False,True,False]])
np.argwhere(a) # equivalent to checking a == True
#array([[0, 2],
#       [1, 1]], dtype=int64)
np.where(a) # equivalent to checking a == True
#(array([0, 1], dtype=int64), array([2, 1], dtype=int64))

如果要将结果转换为列表,则有一个ndarray.tolist()方法。 所以你可以调用np.argwhere(a).tolist()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM