سؤال

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