【发布时间】:2025-12-04 00:20:04
【问题描述】:
我想找到一个比循环&if 更“numpy”的解决方案,用于列出所有坐标 (x,y) 的值等于二维数组 python 中给定 m 的值。
例如:这是一个 4x4 矩阵
0 1 1 0
0 2 2 0
0 2 1 0
0 0 0 0
如果是m = 2,我想要[(1,1), (1,2), (2,1)] 的列表,因为这些单元格 = 2。我想要的是它们的坐标。
如果 m = 1 则 [(0,1), (0,2), (2,2)] 由于单元格 = 1。
我不想要循环和 if 的解决方案并将 i,j 放入列表中。这有点慢,任何使用 numpy 更快的解决方案? 谢谢
有人建议我看看这个numpy get index where value is true,但我试过了,但它不正确。
详细一点:
np.where(np.any(e==1, axis=0) 在情况下给出:[1,2] 是的!同意
np.where(np.any(e==1, axis=1) 给出:[0,2] 是的!还可以但是
这不会导致:[(0,1), (0,2), (2,2)] 因为行或列信息不够,
所以请不要小看这个问题,一次又一次地删除我的问题。我已经厌倦了
【问题讨论】:
-
您的链接问题推荐
argwhere或transpose(where()),与您接受的答案相同。 -
这能回答你的问题吗? numpy get index where value is true