我有一個2d座標數組,我想找到與給定座標匹配的條目索引。匹配二維數組中的座標的有效方法
例如,我的數組可能是A
:
A = [[[1.5, 2.0], [1.0, 2.3], [5.4, 2.3]],
[[3.2, 4.4], [2.0, 3.1], [0.0, 2.3]],
[[1.0, 2.0], [2.3, 3.4], [4.0, 1.1]]]
和座標我想匹配是x = [1.0, 2.0]
。我想獲得座標[1.0, 2.0]
的索引,這將是(2, 0)
。
目前,我做如下:
matching_inds = [(i, j) for i in xrange(len(A)) for j in xrange(len(A[0])) if A[i,j][0] == x[0] and A[i,j][1] == x[1]]
這工作,但我覺得應該有一些更有效的(我的工作陣列大得多)。
我試過np.where()
但是對於更高維度來說這似乎不起作用。它將返回所有x座標匹配的座標索引,而不是x和y座標。
任何提示將不勝感激。
儘管你有一個3D數組......你的列表清單包含更多列表。 –
嚴格來說,我想你是對的。我將最裏面的列表視爲一個元組,但我知道Python將它視爲當前形式的列表。 – berkelem
一個點能否在數組中出現多次?如果是這樣,如果您的搜索在多個地方匹配,您希望得到什麼答案? – alexis