Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查找numpy数组中的最小值以及该数组其余部分的相应值';s排_Python_Numpy - Fatal编程技术网

Python 查找numpy数组中的最小值以及该数组其余部分的相应值';s排

Python 查找numpy数组中的最小值以及该数组其余部分的相应值';s排,python,numpy,Python,Numpy,考虑以下NumPy阵列: a = np.array([[1,4], [2,1],(3,10),(4,8)]) 这将生成一个如下所示的数组: array([[ 1, 4], [ 2, 1], [ 3, 10], [ 4, 8]]) 我要做的是找到第二列的最小值(在本例中为1),然后报告该对的另一个值(在本例中为2)。我尝试过使用argmin之类的东西,但第一列中的1却把它弄错了 有没有一种方法可以轻松做到这一点?我也考虑过对数组进行排序,但我似乎

考虑以下NumPy阵列:

a = np.array([[1,4], [2,1],(3,10),(4,8)])
这将生成一个如下所示的数组:

array([[ 1,  4],
       [ 2,  1],
       [ 3, 10],
       [ 4,  8]])
我要做的是找到第二列的最小值(在本例中为1),然后报告该对的另一个值(在本例中为2)。我尝试过使用argmin之类的东西,但第一列中的1却把它弄错了

有没有一种方法可以轻松做到这一点?我也考虑过对数组进行排序,但我似乎无法以一种将数组对保持在一起的方式来实现排序。数据是由如下循环生成的,因此,如果有一种更简单的方法不是numpy数组,那么我也可以将其作为一个答案:

results = np.zeros((100,2))

# Loop over search range, change kappa each time
for i in range(100):
    results[i,0] = function1(x)
    results[i,1] = function2(y)
怎么样

a[np.argmin(a[:, 1]), 0]
细分

a。抓住第二列

>>> a[:, 1]
array([ 4,  1, 10,  8])
>>> np.argmin(a[:, 1])
1
b。获取第二列中最小元素的索引

>>> a[:, 1]
array([ 4,  1, 10,  8])
>>> np.argmin(a[:, 1])
1
c。索引
a
,以获得相应的行

>>> a[np.argmin(a[:, 1])]
array([2, 1])
d。以第一个元素为例

>>> a[np.argmin(a[:, 1]), 0]
2

使用
np.argmin
可能是解决此问题的最佳方法。要在纯python中执行此操作,可以使用:


min(a中r的元组(r[::-1])[::-1]

但是为了我自己的理智,你能解释一下这到底对我有什么逻辑作用吗?试图避免货物邪教编码。完成-希望这是有意义的