Python-如何在列表中查找非最小值的数字
我有一个列表Python-如何在列表中查找非最小值的数字,python,list,numpy,minimum,Python,List,Numpy,Minimum,我有一个列表S=[a[n],b[n],c[n],对于n=0,列表S的最小值是'a'。如果我知道最小值,如何选择值b和c?我正在编写的代码经过了许多次n迭代,我想检查循环中给定迭代的最小元素 Python 2.7.3,32位。Numpy 1.6.2。Scipy 0.11.0b1也许您可以执行以下操作 S.sort() S[1:3] 这就是您想要的?如果您可以将整个列表展平为一个numpy数组,然后使用argsort,argsort的第一行将告诉您哪个数组包含最小值: a = [1,2,3,4]
S=[a[n],b[n],c[n]
,对于n=0
,列表S
的最小值是'a'
。如果我知道最小值,如何选择值b
和c
?我正在编写的代码经过了许多次n
迭代,我想检查循环中给定迭代的最小元素
Python 2.7.3,32位。Numpy 1.6.2。Scipy 0.11.0b1也许您可以执行以下操作
S.sort()
S[1:3]
这就是您想要的?如果您可以将整个列表展平为一个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]])
所以基本上你想要实现的是,对于每个元组
(a,b,c)
选择b
和c
,假设b
和c
大于a
,对吗?(假设元组已经排序)是的,但我无法知道最小值将在哪个索引中,除非每次迭代我都可以对它们进行排序?因为你知道最小值,一个简单的[x for x in my_list if x>current_minimum]
就可以做到这一点,假设当前最小值存储在current_minimum
。