当前位置: 首页 > 面试题库 >

numpy不带排序的唯一

高功
2023-03-14
问题内容

我如何使用numpy unique而不对结果进行排序,而仅按它们在序列中出现的顺序排序?像这样吗

a = [4,2,1,3,1,2,3,4]

np.unique(a) = [4,2,1,3]

而不是

np.unique(a) = [1,2,3,4]

使用幼稚的解决方案应该可以编写一个简单的函数。但是,由于我需要多次执行此操作,因此有什么快速而整洁的方法吗?


问题答案:

您可以使用return_index参数执行此操作:

>>>将numpy导入为np
>>> a = [4,2,1,3,1,2,3,4]
>>> np.unique(a)
数组([1,2,3,4])
>>>索引= np.unique(a,return_index = True)[1]
>>> [a [index]表示已排序的索引(索引)]
[4,2,1,3]


 类似资料:
  • 我有一个DynamoDB表,其中包含主键:userID、排序键:sesionID和另一列,该列名为示例ID。 我想返回一个列表,该列表返回所有包含我发送的userID和examID的记录。这是我的代码: 这就是我得到的错误:{“statusCode”:500,“body”:“{”error“:“查询条件缺少关键架构元素:sessionId”}”, ... 我想也许我应该包括一个过滤器表达式,或者不

  • 主要内容:numpy.sort(),numpy.argsort(),numpy.lexsort(),numpy.nonzero(),numpy.where(),numpy.extract(),numpy.argmax(),numpy.argmin()NumPy 提供了多种排序函数, 这些排序函数可以实现不同的排序算法。 排序算法特征主要体现在以下四个方面:执行速度,最坏情况下的复杂度,所需的工作空间以及算法的稳定性。下表列举了三种排序算法: NumPy排序算法 种类 速度 最坏复杂度 工作空间

  • 我试图建立一个方法,将排序一个二维数组的双打按列。基于所提供的规范,此方法也不应该采用长度不等的行的粗糙数组。我正在使用双[][]mdarray={{3.0, 4.0, 1.0, 8.0},{13.0, 2.0, 12.0, 9.0}测试这个 使用打印方法时,应将其显示为 3.0, 2.0, 1.0, 8.0, 13.0, 4.0, 12.0, 9.0, 使用单独的打印方法输出结果时,数组似乎没有

  • 问题内容: 我有一个练习,需要在 不使用数组的情况下 将4个数字升序排列,然后再降序 排列 。我只能使用循环和if语句。我已经用3个数字做到了,但是现在用4个数字我无法想到逻辑。 问题答案: 一种进行小型,固定大小排序的好方法是使用排序网络: 每行编码两个元素之间的比较和交换。 您可以使用此页面为少量输入生成最佳的分类网络。 要以相反的顺序排序,只需将标志翻转为标志即可。

  • 问题内容: 如何按第n列对NumPy中的数组排序? 例如, 我想按第二列对行进行排序,以便返回: 问题答案: 对于“正确”的方式,请参见的关键字参数。 但是,你需要将数组视为具有字段的数组(结构化数组)。 如果你最初没有使用字段定义数组,那么“正确”的方法将非常丑陋。 作为一个简单的示例,对其进行排序并返回副本: 对其进行原位排序: 据我所知,确实是最优雅的方式… 此方法的唯一优点是,参数是用于排

  • 我很惊讶以前没有人问过这个特定的问题,但我真的没有在SO上或。 假设我有一个包含整数的随机numpy数组,例如: 但我希望解决方案按降序排序。 现在,我知道我总能做到: 但这最后一句话是否高效?它不创建一个按升序排列的副本,然后反转这个副本以得到按反转顺序排列的结果吗?如果情况确实如此,是否有一个有效的替代方案?看起来不像接受参数来更改排序操作中比较的符号,以获得相反的顺序。