NumPy:取消排序/撤消反向/降序排序

2024-01-05

我可以对 numpy 数组进行就地反向排序(降序排序),但我还需要能够稍后对其进行取消排序(撤消)。

给出一个未排序的例子:

a = np.array([-1, -2,  1, -3,  2,  0])

I tried:

i = a[::-1].argsort().argsort()  # BAD attempt to store original index
# i = array([3, 5, 0, 4, 1, 2])

a[::-1].sort()  # in-place reverse sort (works correctly)
# a= array([ 2,  1,  0, -1, -2, -3])

a = a[i]  # FAILS to restore original a
# a = array([-1, -3,  2, -2,  1,  0])

上面的方法不起作用。什么是正确的i那行得通吗?假设数组非常大,因此我们不想制作任何不必要的副本。


下面的习惯用法比第二个 argsort (O(n log n)) 更便宜 (O(n))。

示例数组x与排序顺序y

>>> x = np.random.random(10)
>>> y = x.argsort()[::-1]

构建逆i

>>> i = np.empty_like(y)
>>> i[y] = np.arange(y.size)

Check:

>>> x
array([0.44257134, 0.573158  , 0.07762422, 0.31507426, 0.43414726,
       0.34923861, 0.22161337, 0.14090133, 0.66903264, 0.38888105])
>>> x[y]
array([0.66903264, 0.573158  , 0.44257134, 0.43414726, 0.38888105,
       0.34923861, 0.31507426, 0.22161337, 0.14090133, 0.07762422])
>>> x[y][i]
array([0.44257134, 0.573158  , 0.07762422, 0.31507426, 0.43414726,
       0.34923861, 0.22161337, 0.14090133, 0.66903264, 0.38888105])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NumPy:取消排序/撤消反向/降序排序 的相关文章

  • Python/Scipy 2D 插值(非均匀数据)

    这是我上一篇文章的后续问题 Python Scipy 插值 地图坐标 https stackoverflow com questions 5124126 python scipy interpolation map coordinates
  • 你能通过傅里叶变换计算原始信号的幅度/功率吗?

    使用 scipy fftpack fft 对一些样本进行离散傅立叶变换并绘制这些样本的幅度后 我注意到它不等于原始信号的幅度 两者之间有关系吗 有没有一种方法可以根据傅立叶系数计算原始信号的幅度而不需要反转变换 这是振幅为 7 0 且 ff
  • 如果列全部为 nan,则使 numpy.nanargmin 返回 nan

    是否可以使用numpy nanargmin 使其返回numpy nan 在其中只有 nan 的列上 现在 它提出了一个ValueError 当这种情况发生时 我不能使用numpy argmin 因为当列中只有几个 nan 时 这将会失败 h
  • python matplotlib 保存图形而不显示

    我想创建一个直方图并将其保存到文件中而不将其显示在屏幕上 我现在拥有的代码默认显示该图 我找不到任何方法来抑制显示该图 我也尝试过 pyplot hist nrs 也有同样的问题 import math time matplotlib py
  • 反转或点 kxnxn 矩阵的快速方法

    有没有一种快速方法可以使用 numpy 计算 kxnxn 矩阵的逆矩阵 在每个 k 切片处计算逆矩阵 换句话说 有没有办法矢量化下面的代码 gt gt gt from numpy linalg import inv gt gt gt a r
  • 链表插入排序

    我在编程的排序部分还不是很先进 所以我正在为我的算法寻求一些帮助 void sortList Item PTR tmpNxt current gt nextItem Item PTR tmpPTR current int a tmp whi
  • 使用 stl sort 对表进行排序

    我有一个巨大的表 约 50Gb 格式为 i j k 来自稀疏矩阵 存储为 uint32 t idx1 idx2 float vals uint32 t tablesize 我想使用给定的比较函数 即 idx1 和 idx2 的函数 对其进行
  • DataGridView小数不排序

    好吧 我有一个 DataGridView 它的数据绑定如下 dataGridViewChartOre AutoGenerateColumns false dataGridViewChartOre DataSource xml GetOreC
  • Django Admin:引用用户的ForeignKey和ManyToManyField关系的排序

    我有一个使用 Django 的应用程序UserProfile扩展内置的 DjangoUser模型 看起来有点像 class UserProfile models Model user models ForeignKey User uniqu
  • 下一个和上一个文档

    我正在制作一个图片库 每个图像都有一个 id 当我查看图像时 我想要接下来的 3 个图像和之前的 3 个图像 我怎样才能在 mongodb 查询中得到这个 我认为我可以使用 sort by id 因为这是不可排序的 也许使用mapReduc
  • numpy 数组的 True 和 False 索引

    Code import numpy as np a np arange 5 print a True print a False Result 0 1 2 3 4 对于上面的代码 当我将 True 传递给 numpy 数组的索引时 它返回完
  • Pytorch TypeError:eq() 收到无效的参数组合

    num samples 10 def predict x sampled models guide None None for in range num samples yhats model x data for model in sam
  • 按绝对值排序

    有谁知道如何按绝对值对 R 中的向量进行排序 所以 2 3 1 gt 1 2 3 etc 如果我在 python 中这样做 我会创建一对每个值及其符号 按绝对值对对列表进行排序 然后重新应用符号 但我对 R 很陌生 所以不知道如何执行此操作
  • Python:numpy.corrcoef 内存错误

    我试图计算从文本中读取的大量数据之间的相关性 对于非常大的数据集 程序会给出内存错误 谁能告诉我如何解决这个问题 谢谢 以下是我的代码 enter code here import numpy from numpy import from
  • numpy 使用 datetime64 进行数字化

    我似乎无法让 numpy digitize 与 datetime64 一起使用 date bins np array np datetime64 datetime datetime 2014 n 1 s for n in range 1 1
  • 对对象集合进行排序[重复]

    这个问题在这里已经有答案了 如果我有一个简单的字符串列表 List
  • PyTorch DataLoader 对并行运行的批次使用相同的随机种子

    有一个bug https tanelp github io posts a bug that plagues thousands of open source ml projects 在 PyTorch Numpy 中 当并行加载批次时Da
  • 在 Drupal 中对视图进行排序时忽略“The”

    当用户在 Drupal 站点中对视图进行排序时 如何忽略 The 你有没有尝试过调查视图自然排序模块 http drupal org project views natural sort 取自上面链接的模块页面 提供排序的视图过滤器 以更自
  • 在Python中从VTK文件中检索面和点

    我有一个包含 3d 模型的 vtk 文件 我想提取点坐标和面 这是一个最小的工作示例 import vtk import numpy from vtk util numpy support import vtk to numpy reade
  • 按升序对数字字符串列表进行排序

    我创建了一个SQLite https en wikipedia org wiki SQLite数据库有一个存储温度值的表 第一次将温度值按升序写入数据库 然后 我将数据库中的温度值读入列表中 然后将该列表添加到组合框中以选择温度 效果很好

随机推荐

  • 致命错误:找不到“stdafx.h”文件

    我是 C 编程新手 正在尝试通过网站 learncpp com 自学 尽管我已经坚持编译我的第一个程序 他们使用 Visual Studio 来编程他们的代码 因为我使用的是 macbook 我只是使用 vi 和终端 或者我应该使用其他东西
  • vim:同步多个主机上所有插件的最佳实践是什么

    我正在尝试开始使用 vim 插件管理工具来管理我的 vim 插件 例如 vundle 并且我有多个主机并希望它们与 vim 设置同步 目前我正在将 vim 目录检查到 git 存储库中 但我不想签入所有插件 因为它们属于其他插件 想知道如果
  • asp.net 将字符串变量传递给用户控件

    我正在尝试将代码隐藏变量的值传递给用户控件 例如
  • Python 中的整数是按值传递还是按引用传递?

    我编写了以下代码来检查整数是否按值或引用传递 foo 1 def f bar print id foo id bar bar 1 print foo bar f foo 我得到的输出是 True 1 2 从Python文档来看 id obj
  • 我如何主题滚动 jGrowl

    我正在构建一个网站 并且尝试使用 jquery ui 主题来实现尽可能多的样式 jGrowl 网站称它可以进行主题滚动 从网站 1 2 2 的变化 通知现在可以为 jQuery UI 进行主题滚动 特别感谢 Jeff Chan 确实没有任何
  • 使用远程 gdbserver 启动 ddd

    我正在使用 ddd 调试在远程目标上运行的程序 例如 远程 gdbserver 通过端口 1234 在本地主机上运行 但仍充当远程 我知道你可以通过打开 ddd 连接到 gdbserver 然后调用target remote localho
  • 使用未解析的标识符“GGLContext”

    我正在将 Google Sign In 集成到我的 ios Swift 应用程序中 我按照谷歌开发者页面上的官方说明进行操作 https developers google com identity sign in ios sign in
  • 创建状态项 - 图标显示,菜单不显示

    在基于文档的项目中 我试图创建一个状态菜单 我有一个构建状态栏的单例类 并且我从应用程序委托启动它 如您所见 当我运行它时 我没有收到任何错误 但只有状态栏的图像 但没有下拉菜单 我在 IB 中创建了菜单 我搞砸了什么 Delegate i
  • 使用 Swift 计算 SpriteKit 中的 delta

    我正在尝试通过重构我的一款旧游戏来快速学习 我需要重写我的update计算增量时间的方法 这段代码works但很丑 我该怎么办properly重写这个 import SpriteKit class GameScene SKScene var
  • Flot:如何在条形图中设置数字样式?

    我在用着流程图 http www flotcharts org 它是插件Flot barnumbers Demo http joetsoi github io flot barnumbers 显示图表 我需要在栏中显示数字 它可以工作 不幸
  • FPDF 在每个 A4 尺寸页面的页脚处获取页码

    我正在使用 FPDF 创建 PDF 报告 现在 如何在页面底部的报告的每一页上生成页码 以下是生成 2 页 PDF 的示例代码
  • Scala 宏检查树的匿名函数

    我刚刚开始使用宏 感觉我错过了一些非常明显的痛苦 我想检查 AST 中是否有传递给我的宏的匿名 lambda 函数 最终我想对它做一些事情 但我在第一个障碍上就失败了 我的代码如下所示 object Test extends App doI
  • 错误:DisplayListCanvas.throwIfCannotDraw 处的 RuntimeException

    我的应用程序在牛轧糖模拟器和许多设备上运行得很好 但我在 google play crash reports 中发现了这个异常 我不知道为什么会发生这种情况 该异常仅在牛轧糖设备 上引起 例外 java lang RuntimeExcept
  • 父变量在 ng-content 内不起作用

    Intro 我正在研究 ng2 组件 其结构如下
  • 在 C# (ASP.net) 中删除重复查询字符串的最快方法是什么

    我遇到一个问题 该公司使用业务跟踪系统来捕获用户的首次访问并将他们重定向到他们试图访问的页面 但附加了引用 URL 现在 由于引用网址包含该人试图访问的网址 不要问为什么 我不知道 它会导致我拥有每个值的重复项 所以参观这个 home as
  • 根据运输类别有条件地隐藏 WooCommerce 运输方式

    使用 WooCommerce v3 2 4这个网站 这里 https mur hatcherydev xyz WP v4 9 和 11 种运输类别为超重 超大且适用统一费率的产品 20前往加拿大和 25到美国 所有其他产品均采用统一费率运输
  • 如何垂直对齐 span 标签内的内容?

    如何使 x 在跨度的中间垂直对齐 foo height 50px border solid black 1px display inline block vertical align middle span class foo x span
  • 如何将 scons 指向安装在我的主目录中的不同编译器?

    我尝试编辑 SConstruct 以指向不同的 gcc 编译器 但它似乎总是使用 usr bin gcc 和 usr bin g 中定义的编译器 env DefaultEnvironment env CC home aaron devel
  • 我如何利用 NSCoding 将对象转换为 NSDictionary ?

    我有一个实现 NSCoding 的 Objective C 类 我需要以 NSDictionary 的形式返回此类实例的表示形式 其中键是属性名称 值是属性值 如何在 Objective C 中进行这种转换 NSObject 有一个方法di
  • NumPy:取消排序/撤消反向/降序排序

    我可以对 numpy 数组进行就地反向排序 降序排序 但我还需要能够稍后对其进行取消排序 撤消 给出一个未排序的例子 a np array 1 2 1 3 2 0 I tried i a 1 argsort argsort BAD atte