【发布时间】:2018-04-06 00:42:45
【问题描述】:
返回变量和 ndarray 中元素之间第一次匹配的索引的最快方法是什么?我看到 numpy.where 使用了很多,但它返回所有索引。
match = 5000
zArray = np.array([[0,1200,200],[1320,24,5000],[5000,234,5230]])
>array([[ 0, 1200, 200],
[1320, 24, 5000],
[5000, 234, 5230]])
numpy.where(zArray==match)
>(array([1, 2], dtype=int64), array([2, 0], dtype=int64))
我希望返回第一个索引,即仅 [1,2]。但 numpy.where 同时返回 [1,2] 和 [2,0]
【问题讨论】:
-
你会如何定义 first 匹配?行专业还是列专业?
-
谢谢大家,我需要澄清一下..
-
请注意,您的示例数组恰好设置为结果中的两个数组似乎是您正在寻找的两个 x、y 索引对。相反,这些是匹配项的 [x1, x2] 和 [y1, y2] 索引。尝试例如
[[0,5000,200],[1320,24,1200],[234,5000,5230]]来看看。 -
只是为了重复@Evert 提到的内容,我相信
"I'd like the first index returned, i.e. just [1,2]. but numpy.where returns both [1,2] and [2,0]"需要修改。