2

どのインデックスがx配列の最小 (たとえば 5) の番号に属しているかを調べる方法は?

[10.18398473, 9.95722384, 9.41220631, 9.42846614, 9.7300549 , 9.69949144, 9.86997862, 10.28299122, 9.97274071, 10.08966867, 9.7]

また、ソートされた(低いものから高いものへ)最小xの数字を直接見つける方法は?

4

4 に答える 4

4

既存の回答は素晴らしいですが、使用している場合の解決策は次のnumpyとおりです。

mylist = np.array([10.18398473, 9.95722384, 9.41220631, 9.42846614, 9.7300549 , 9.69949144, 9.86997862, 10.28299122, 9.97274071, 10.08966867, 9.7])
x = 5
lowestx = np.argsort(mylist)[:x]
#array([ 2,  3,  5, 10,  4])
于 2013-03-18T22:35:54.633 に答える
3

次のようなことができます。

>>> l = [5, 1, 2, 4, 6]
>>> sorted(range(len(l)), key=lambda i: l[i])
[1, 2, 3, 0, 4]
于 2013-03-18T22:27:09.827 に答える
2
mylist = [10.18398473, 9.95722384, 9.41220631, 9.42846614, 9.7300549 , 9.69949144, 9.86997862, 10.28299122, 9.97274071, 10.08966867, 9.7]

# lowest 5
lowest = sorted(mylist)[:5]

# indices of lowest 5
lowest_ind = [i for i, v in enumerate(mylist) if v in lowest]

# 5 indices of lowest 5
import operator
lowest_5ind = [i for i, v in sorted(enumerate(mylist), key=operator.itemgetter(1))[:5]]
于 2013-03-18T22:29:20.217 に答える
0
[a.index(b) for b in sorted(a)[:5]]
sorted(a)[.x]
于 2013-03-18T22:35:39.363 に答える