也许这是关于numpy的一个基本问题,但我不知道该如何去做。我们假设有一个类似下面的2D numpy数组:
import numpy as np
arr = np.array([[ 0., 460., 166., 167., 123.],
[ 0., 0., 0., 0., 0.],
[ 0., 81., 0., 21., 0.],
[ 0., 128., 23., 0., 12.],
[ 0., 36., 0., 13., 0.]])
我需要从子数组中获取坐标。
[[0., 21,. 0.],
[23., 0., 12.],
[0., 13., 0.]]
我尝试对原始数组进行切片,然后使用np.argwhere
查找坐标,就像这样
newarr = np.argwhere(arr[2:, 2:] != 0)
#output
#[[0 1]
# [1 0]
# [1 2]
# [2 1]]
这些确实是子数组的坐标,但我期望的是对应于我的原始数组的坐标。期望的输出结果是:
[[2 3]
[3 2]
[3 4]
[4 3]]
如果我使用
np.argwhere
和原始数组,我会得到一堆我不需要的坐标,所以我无法弄清楚如何获得我需要的内容,请帮助我或者指导我正确的方向,谢谢!