您可以使用
np.where:
In [9]: np.where(x == np.min(x))Out[9]: (array([2]), array([1]))
就像评论中提到的@senderle一样,要获取数组中的值,您可以使用
np.argwhere:
In [21]: np.argwhere(x == np.min(x))Out[21]: array([[2, 1]])
更新:
正如OP的时间所显示的那样,并且需要更加清晰
argmin(没有重复的分钟数等),我认为可以稍微改善OP的原始方法的一种方法是使用
divmod:
divmod(x.argmin(), x.shape[1])
对它们进行计时,您会发现额外的速度点虽然不多,但仍然有所改进。
%timeit find_min_idx(x)1000000 loops, best of 3: 1.1 µs per loop%timeit divmod(x.argmin(), x.shape[1])1000000 loops, best of 3: 1.04 µs per loop
如果您真的很关心性能,可以看看 cython 。



