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

如何“压缩排序”并行的numpy数组?

锺离高丽
2023-03-14
问题内容

如果我有两个并行列表,并想按第一个中的元素顺序对其进行排序,则非常简单:

>>> a = [2, 3, 1]
>>> b = [4, 6, 7]
>>> a, b = zip(*sorted(zip(a,b)))
>>> print a
(1, 2, 3)
>>> print b
(7, 4, 6)

我如何使用numpy数组执行相同操作而又不将其拆包到常规Python列表中?


问题答案:

b[a.argsort()] 应该可以。

运作方式如下。首先,您需要找到排序为a的排列。argsort是一种计算方法:

>>> a = numpy.array([2, 3, 1])
>>> p = a.argsort()
>>> p
[2, 0, 1]

您可以轻松地检查这是否正确:

>>> a[p]
array([1, 2, 3])

现在对b应用相同的排列。

>>> b = numpy.array([4, 6, 7])
>>> b[p]
array([7, 4, 6])


 类似资料:
  • 问题内容: 用Python的方式对压缩列表进行排序是什么? 代码: 上面的代码显示 [[‘d’,3),(’a’,2),(’t’,1),(’x’,0)] 我想排序 压缩 的价值观。因此,理想情况下,它最终看起来像这样 [[‘x’,0),(’t’,1),(’a’,2),(’d’,3)] 。 问题答案:

  • 问题内容: 例如我有2个数组 我怎么能 和这样我得到 ? 问题答案: 您可以使用dstack: 如果必须有元组: 对于Python 3+,您需要扩展iterator对象。请注意,这是非常低效的:

  • 因此,目前我的用户下载一个zipfile,解压缩它,然后运行安装程序。exe-我希望他们只需单击一下即可完成此操作。使用http://www.wikihow.com/Use-7Zip-to-Create-Self-Extracting-excutables我可以制作一个自解压exe,但它实际上并不运行安装程序。 从这个问题 为什么7zip在制作SFX安装程序时会忽略我的InstallPath? 看

  • 当我向Kafka主题发送消息时,我可能会收到一条比其他消息大得多的消息。 因此需要在单消息级进行压缩。根据https://cwiki.apache.org/confluence/display/kafka/compression, 一组消息可以被压缩并表示为一个压缩消息。 同样,根据https://github.com/apache/kafka/blob/0.10.1/clients/src/ma

  • 主要内容:1 Java8 并行数组排序的介绍,2 Java8 并行数组排序的方法,3 Java8 并行数组排序案例1,4 Java8 并行数组排序案例21 Java8 并行数组排序的介绍 Java在Array类中提供了一个新的附加功能,该功能用于对数组元素进行并行排序。java.util.Arrays包中添加了新方法,该方法使用JSR 166 Fork / Join并行公共池对数组进行并行排序。被称为parallelSort() ,并且对所有原始数据类型和Comparable对象都进行了重载。

  • 我是为了视频压缩而引用这个链接。https://github.com/lalongoo/videocompressor当我压缩。mkv文件时,它的工作和提供更小的大小,但当我压缩。mp4文件时,它提供的大小比视频的原始大小更大。我不明白我必须做什么改变来实现这一点。..这段代码使用MediaCodec进行视频压缩。..是否可以快速压缩?