So I have this list called sumErrors that's 16000 rows and 1 column, and this list is already presorted into 5 different clusters. And what I'm doing is slicing the list for each cluster and finding the index of the minimum value in each slice.
However, I can only find the first minimum index using argmin(). I don't think I can just delete the value, because otherwise it would shift the slices over and the indices is what I have to recover the original ID. Does anyone know how to get argmin() to spit out indices for the lowest three?
Or perhaps a more optimal method? Maybe I should just assign ID numbers, but I feel like there maybe a more elegant method.
argmin. Returns the indices of the minimum values along an axis.
The numpy argmin() function takes arr, axis, and out as parameters and returns the array. To find the index of a minimum element from the array, use the np. argmin() function.
Numpy includes an argsort
function which will return all the indices. If I understand your requirement correctly, you should be able to do:
minidx = []
for cluster in sumErrors:
minidx.append(np.argsort(cluster)[:3])
numpy.argpartition(cluster, 3)
would be much more effective.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With