2

我有一个列表S = [a[n],b[n],c[n]]n=0列表中的最小值S是 value 'a'。鉴于我知道最小值,我该b如何选择这些值?c我正在编写的代码经过多次迭代n,我想检查对于循环中给定迭代来说不是最小值的元素。

Python 2.7.3,32 位。麻木 1.6.2。Scipy 0.11.0b1

4

2 回答 2

1

如果你可以将整个列表展平成一个 numpy 数组,然后使用 argsort,argsort 的第一行会告诉你哪个数组包含最小值:

a = [1,2,3,4]
b = [3,-4,5,8]
c = [6,1,-7,12]
S = [a,b,c]
S2 = np.array(S)
S2.argsort(axis=0)
array([[0, 1, 2, 0],
       [1, 2, 0, 1],
       [2, 0, 1, 2]])
于 2013-08-10T18:58:22.530 回答
0

也许你可以做类似的事情

S.sort()
S[1:3]

这就是你想要的?

于 2013-08-10T18:54:47.810 回答