我有一个'mask'(布尔)2D数组,我想把它转换成一个坐标列表.什么是适当的numpythonic方式呢?
输入将是这样的:
[[False,False,True],
[False,True,False]]
Run Code Online (Sandbox Code Playgroud)
并给出上述输入,输出应为:
[(0,2),(1,1)]
Run Code Online (Sandbox Code Playgroud)
使用
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))
Run Code Online (Sandbox Code Playgroud)
如果您想将结果转换为列表,则有一种ndarray.tolist()方法.所以你可以打电话np.argwhere(a).tolist().
| 归档时间: |
|
| 查看次数: |
1667 次 |
| 最近记录: |