很多小伙伴不知道如何用numpy进行降序,今天就这个问题一起来看看吧。
我有一个像这样的numpy数组:
<p style="line-height: 1.75em"><span>A = <a href="https://www.gaodaima.com/tag/array" title="查看更多关于array的文章" target="_blank">array</a>([[1, 3, 2, 7], [2, 4, 1, 3], [6, 1, 2, 3]])<br></span></p>
www#gaodaima.com来源gaodai.ma#com搞##代!^码网搞代码
我想按降序排序这个矩阵的行,并得到排序矩阵的参数,如下所示:
<p style="line-height: 1.75em"><span>As = array([[3, 1, 2, 0], [1, 3, 0, 2], [0, 3, 2, 1]])<br></span></p>
我做了以下事情:
<p style="line-height: 1.75em"><span>import numpy A = numpy.array([[1, 3, 2, 7], [2, 4, 1, 3], [6, 1, 2, 3]]) As = numpy.argsort(A, axis=1)<br></span></p>
但这让我按升序排序。此外,在我花了一些时间在互联网上寻找解决方案后,我希望numpy中的argsort函数必须有一个参数可以反转排序顺序。但是,显然没有这样的论点!为什么?
有一个称为秩序的论证。我试过,通过猜测,numpy.argsort(…,order = reverse),但它不起作用。
我在这里找到了以前问题的解决方案,我发现我可以做到:
<p style="line-height: 1.75em"><span>import numpy A = numpy.array([[1, 3, 2, 7], [2, 4, 1, 3], [6, 1, 2, 3]]) As = numpy.argsort(A, axis=1) As = As[::-1]<br></span></p>
由于某种原因,As = As [:: – 1]没有给我所需的输出。
好吧,我想这一定很简单,但我错过了一些东西。
如何按降序对numpy数组进行排序?只需将矩阵乘以-1即可逆序:
<p style="line-height: 1.75em"><span>[In]: A = np.array([[1, 3, 2, 7], [2, 4, 1, 3], [6, 1, 2, 3]]) [In]: print( np.argsort(-A) ) [Out]: [[3 1 2 0] [1 3 0 2] [0 3 2 1]]<br></span></p>
以上就是Python中numpy进行降序的方法。更多Python学习推荐:云海天Python教程网。
来源:搞代码网:原文地址:https://www.gaodaima.com