Is there a way to return the indices of k-minimum values along an axis of a numpy array without using loops?

有帮助吗?

解决方案

import numpy as np
x = np.array([[5, 2, 3],[1, 9, 2]]) # example data
k = 2 # return the indices of the 2 smallest values
np.argsort(x, axis=1)[:,0:k] # by row

array([[1, 2],
       [0, 2]])
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top