如何根据其中一个 Vec 的值对两个 Vec 进行共同排序?

2024-01-12

我有两个Vec对应于特征向量列表及其相应的类标签,我想按类标签对它们进行共同排序。

然而,Rust 的sort_by对切​​片进行操作,而不是作为特征(或类似)上的通用函数,并且闭包仅获取要比较的元素而不是索引,因此我可以偷偷地破解排序以使其并行。

我考虑过解决方案:

let mut both = data.iter().zip(labels.iter()).collect();
both.sort_by( blah blah );
// Now split them back into two vectors

我不想每次都分配一个全新的向量来执行此操作,因为数据的大小可能非常大。

当然,我总是可以实现我自己的排序,但如果有一种内置的方法可以做到这一点,那就更好了。


我刚刚写了板条箱“排列” https://crates.io/crates/permutation这可以让你做到这一点:)

let names = vec!["Bob", "Steve", "Jane"];
let salary = vec![10, 5, 15];
let permutation = permutation::sort(&salary);
let ordered_names = permutation.apply_slice(&names);
let ordered_salaries = permutation.apply_slice(&salary);
assert!(ordered_names == vec!["Steve", "Bob", "Jane"]);
assert!(ordered_salaries == vec![5, 10, 15]);

将来它可能会在单个函数调用中支持这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据其中一个 Vec 的值对两个 Vec 进行共同排序? 的相关文章

随机推荐

  • 如何在 Java 桌面应用程序中使用 Google Drive?

    我正在处理移动和桌面应用程序 我正在尝试使用 Google Drive 作为永久存储文件夹 不幸的是我很茫然 因为我找不到任何例子 有人可以给我举一个从 Google 云端硬盘存储或检索文件的示例吗 我真的很想看到一个简单的代码示例 或者一
  • 如何在 Visual Studio 2012 中分析单元测试?

    是否有可能profileMSTest 单元测试Visual Studio 2012 旗舰版不使用任何外部分析工具 此功能已在即将发布的 Visual Studio 2012 季度更新 1 中重新添加 在测试资源管理器中右键单击要分析的测试
  • 自定义 ASP.NET SqlMembershipProvider - 处理连接字符串

    我正在创建一个自定义 SqlMembershipProvider 类 以向基类添加一些增强功能 不过 我正在忙于处理连接字符串 如何从配置中读取连接字符串名称并使其可供其余方法使用 现在我有 public override void Ini
  • 使用 JavaScript 基于字符串创建十六进制颜色

    我想创建一个函数来接受任何旧字符串 通常是一个单词 并从中somehow生成一个介于之间的十六进制值 000000 and FFFFFF 所以我可以将它用作 HTML 元素的颜色 甚至可能是一个速记的十六进制值 例如 FFF 如果不那么复杂
  • 使用 Mapbox 过滤掉国家/地区

    是否有可能使用 Mapbox 仅显示德国国家边界和内部数据 我不想展示世界其他地方 Thankx Markus 是的 使用德国 GeoJSONhttp code highcharts com mapdata http code highch
  • android usb UsbDeviceConnection.bulkTransfer 返回 -1

    我正在尝试从 Android 平板电脑向 POS 打印机发送命令 我已经能够使基本连接正常工作 但现在当我尝试将数据发送到打印机时 bulkTransfer 返回 1 请帮助我了解发生了什么事 以下是从 android 站点获取的修改后的广
  • 处理不断变化的模式

    我们是一家游戏公司 将事件 每天最多 1 个千兆事件 存储到 bigquery 事件按月份和应用程序进行分片 以降低查询成本 现在来谈谈我们的问题 我们当前的解决方案支持添加新类型的事件 从而产生新版本的表模式 该版本也已添加到表中 I e
  • 哪个最有效:直接通过 nginx 提供静态文件还是通过 nginx 反向代理通过节点提供静态文件?

    我已经使用了nginx as reverse proxy服务我的node js网络应用程序3000 lt gt 80例如 实际上 我在节点应用程序中提供我的资产 使用express static中间件 我读了一遍又一遍 发现 nginx 提
  • Entity Framework 5 中的 Visual Studio 2010 支持 LocalDB 吗?

    NET 4 0 上的实体框架 5 中的 Visual Studio 2010 是否支持 LocalDB 还是我做错了 使用 LocalDB 的连接字符串实例化模型容器时 出现 找不到网络路径 问题 这是连接字符串 var connectio
  • MacOS 上的 Clang 包含问题

    我在 MacOS 上从头开始构建了 Clang 但遇到了问题 使用以下命令来配置 Clang 进行构建 cmake G Unix Makefiles DCMAKE INSTALL PREFIX opt clang 12 DCMAKE BUI
  • MATLAB 滑块步进行为

    我使用 MATLAB 2012a 中的 GUIDE 创建了一个滑块小部件 我希望它控制一个显示图像的轴 其中滑块逐步浏览一系列图像 我已在 m 文件的一部分中设置了滑块的 Min Max 和 SliderStep 属性 sliderMin
  • 如何使用 spacy 查找最常用的单词?

    我正在使用 spacy 和 python 它可以很好地标记每个单词 但我想知道是否有可能找到字符串中最常见的单词 还有可能得到最常见的名词 动词 副词等吗 包含一个 count by 函数 但我似乎无法让它以任何有意义的方式运行 我最近不得
  • Jquery:选择调用该函数的元素

    我通过调用元素本身的函数onclick属性 因为我需要 php 动态地在函数的参数之一中给出一个值 当我尝试通过以下方式引用函数中的调用元素时 this 它最终引用整个窗口而不是元素 我该如何解决 尝试将您的元素作为参数发送到您的函数 如下
  • Laravel 错误:方法 Illuminate\View\View::__toString() 不得引发异常

    你在 Laravel 工作时见过这个可爱的错误吗 Method Illuminate View View toString must not throw an exception 我见过它 这非常烦人 我发现了引发此错误的两个原因 我只是想
  • 如何在 JAX-RS REST 方法中检索 JSON 消息正文?

    我有以下内容JSON它将作为 HTTP 请求的一部分在消息正文中传递 names id
  • 自动在绘图中定位文本框

    有没有办法告诉pyplot text 一个像你一样的位置pyplot legend 像 legend 论证这样的东西会很棒 plt legend loc upper left 我正在尝试使用字母 例如 A B 来标记具有不同轴的子图 我认为
  • 如何检测Safari、Chrome、IE、Firefox和Opera浏览器?

    我有 5 个适用于 Firefox Chrome Internet Explorer IE Opera 和 Safari 的插件 扩展 如何正确识别用户浏览器并重定向 单击安装按钮后 以下载相应的插件 谷歌搜索浏览器可靠检测通常会导致检查用
  • DNS问题,nslookup可以,ping不行

    我正在我的公寓里设置一个开发服务器 我已经在其上设置了一个 Ubuntu DNS 服务器 并添加了区域 weddinglist 只是 weddinglist 没有TLD http en wikipedia org wiki Top leve
  • JSON stringify 返回空字符串[重复]

    这个问题在这里已经有答案了 在 Javascript 中 我尝试使用 stringify 但它不断返回空字符串 这里有什么问题吗 请随意编辑小提琴 JS values values belopp 2322 values test jkee
  • 如何根据其中一个 Vec 的值对两个 Vec 进行共同排序?

    我有两个Vec对应于特征向量列表及其相应的类标签 我想按类标签对它们进行共同排序 然而 Rust 的sort by对切 片进行操作 而不是作为特征 或类似 上的通用函数 并且闭包仅获取要比较的元素而不是索引 因此我可以偷偷地破解排序以使其并