根据另一个数组的数据对 numpy 数组进行排序

2024-04-18

我有两组数组data and result. result包含相同的元素data但有一个额外的列并且按未排序的顺序。我想重新安排result数组,使其与中的行顺序相同data,同时在排序时将关联值与该行的其余部分一起放入最后一列。

data = np.array([[0,1,0,0],[1,0,0,0],[0,1,1,0],[0,1,0,1]])
result = np.array([[0,1,1,0,1],[1,0,0,0,0],[0,1,0,0,1],[0,1,0,1,0]])

# this is what the final sorted array should look like:
'''
array([[0, 1, 0, 0, 1],
       [1, 0, 0, 0, 0],
       [0, 1, 1, 0, 1],
       [0, 1, 0, 1, 0]])
 '''

我试过做argsort为了扭转data进入排序顺序,然后将其应用到result but argsort似乎根据每个元素对数组的顺序进行排序,而我希望排序处理数组的每一行data[:,4]作为一个整体。

ind = np.argsort(data)
indind =np.argsort(ind)
ind
array([[0, 2, 3, 1],
   [1, 2, 3, 0],
   [0, 3, 1, 2],
   [0, 2, 1, 3]])

进行这种按行排序的好方法是什么?


The numpy_索引 https://github.com/EelcoHoogendoorn/Numpy_arraysetops_EP包(免责声明:我是它的作者)可以用来高效、优雅地解决此类问题:

import numpy_indexed as npi
result[npi.indices(result[:, :-1], data)]

npi.indices 本质上是 list.index 的矢量化等价物;因此,对于数据中的每个元素(行),我们得到同一行在结果中的位置,减去最后一列。

请注意,此解决方案适用于任意数量的列,并且是完全矢量化的(即,任何地方都没有 python 循环)。

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

根据另一个数组的数据对 numpy 数组进行排序 的相关文章

随机推荐

  • 序列化迁移执行顺序

    我似乎无法在任何地方找到这个问题的答案 我了解 Sequelize 迁移和播种器的工作原理 但我没有找到任何地方说明它们是否按某种特定顺序执行 因此 如果我从一个数据库开始 进行一系列迁移 然后决定从原始起点初始化一个全新的数据库 它将以完
  • 如何在Android应用程序中实现应用内计费?

    看来在Android应用程序中实现应用内计费是相当复杂的 我怎么能这样做呢 SDK 中的示例应用程序只有一个 Activity 这对于像我这样具有多个 Activity 的应用程序来说过于简化了 好吧 我会尝试解释一下我的经历 我不认为自己
  • Mac zip 压缩没有 __MACOSX 文件夹?

    当我在 Mac OSX 中使用内置 zip 压缩器压缩文件时 会导致在提取的 zip 中创建一个名为 MACOSX 的额外文件夹 我可以调整设置以防止创建此文件夹吗 或者我是否需要购买第三方压缩工具 UPDATE 我刚刚找到一个适用于 OS
  • 使用 simplexml_load_file 从 tumblr 中提取 - 每次都会超时

    我的网站加载时间约为 45 秒 这是因为我从 tumblr 中提取了一些 XML 但我无法确定这是我的服务器的错误 tumblr 的错误还是其他因素 我可以让这个脚本在 5 秒后超时并回显 tumblr 已关闭 吗 而不是在近一分钟后超时
  • 等待CSS中的背景图像完全加载[重复]

    这个问题在这里已经有答案了 我有一个网络应用程序 它使用外部 CSS 中加载的外部背景图像 现在 可以在图像完全渲染之前使用该应用程序 从而产生奇怪的视觉效果 如何停止脚本执行直到图像完全加载 它可以使用普通的 JavaScript 或 j
  • 如何复制hashset和hashmap,Java是否使用指针?

    我有两个问题 First 我有一个返回 HashMap 的函数 为了读取返回值 我这样写 HashMap
  • Gradle 上传失败但仍部署到 Nexus

    您好 我的 gradle 构建失败了uploadArchives任务 但是当我检查Nexus时 WAR和POM仍然成功部署到Nexus 谁能帮助我了解发生了什么事 26 Jul 2016 18 46 28 compileGroovy UP
  • 用于从模式生成 URL 的 Java 库

    我想知道是否有任何免费的 Java 库可以自动执行以下过程 1 提供遵循特定模式的 URL 例如 http www asite com path to something thischange alsothischange andthisc
  • 在 Spring Boot 测试中的纯二进制 websocket 连接期间保留 TestSecurityContextHolder

    我有一个使用二进制 websocket 的 spring boot 1 5 2 RELEASE 应用程序 即没有 Stomp AMQP 纯二进制缓冲区 在我的测试中 我能够来回发送消息 效果非常好 但是 在对应用程序进行 websocket
  • 如何知道网络是否连接(断开)?

    在 Xul 中 我如何知道网络是否已连接 断开 update Using function observe aSubject aTopic aState if aTopic network offline status changed wr
  • 是否可以检索由混淆矩阵识别的误报/误报?

    我正在使用 Scikit learn 并使用混淆矩阵来更深入地了解我的算法的执行情况 X train X test Y train Y test train test split keywords list label list test
  • Pydantic 从列表中设置变量

    有没有办法从列表中设置 pydantic 模型 我尝试过这个 但它对我不起作用 如果 pydantic 无法做到这一点 如果我仍然需要类型验证和转换 约束等 那么最好的方法是什么 顺序在这里很重要 from pydantic import
  • 旋转的 CGRect 内部的点

    如何正确确定一个点是否位于旋转的 CGRect 框架内 框架随 Core Graphics 一起旋转 到目前为止 我已经找到了一种计算点是否在三角形内的算法 但这并不是我所需要的 正在旋转的框架是一个带有一些子视图的常规 UIView 让我
  • jquery从下拉列表中获取标签值

    我知道我可以使用 dropdown val 获取值 有人知道我如何获得标签吗 Cheers var text dropdown find option selected text 这与以下相同 var text dropdown optio
  • 跳过 Maven 测试依赖项

    我正在开发一个使用 Maven 进行构建的项目 我想做的是跳过测试依赖项 基本上在我的 Maven 存储库中不存在工件的情况下运行 Maven 构建 eg
  • 在处理 VotingClassifier 或网格搜索时,Sklearn 中的 GradientBoostingClassifier 是否有类别权重(或替代方法)?

    我正在使用 GradientBoostingClassifier 来处理不平衡的标记数据集 Sklearn 中似乎不存在类权重作为该分类器的参数 我发现我可以在合适时使用sample weight 但在处理VotingClassifier
  • 流星排序集合随机

    我想从 Meteor 集合中获取随机排序的集合 最好 最有效的方法是什么 Mongo 选项存在争议 https stackoverflow com questions 20336361 get random document from a
  • 在代码中使用通用 Int - 在 Core Data iOS 中使用 32 位或 64 位 Int?

    我正在用 swift 编写一个应用程序 通过苹果的核心数据保存其数据 在我的代码中 所有整数都被声明为 Int 因为这样更灵活 并且编译器会根据代码运行的设备调整这些整数 但是 当我想使用核心数据保存这些 Int 时 我必须选择 32 位或
  • 从ACRA 4.5升级到ACRA 4.6后编译错误

    我将我的应用程序使用的 ACRA 库从 4 5 0 到 4 6 0 但我收到 formKey 的编译错误 以前可以与 4 5 一起使用 以下是声明 ReportsCrashes formKey formUri socketTimeout 1
  • 根据另一个数组的数据对 numpy 数组进行排序

    我有两组数组data and result result包含相同的元素data但有一个额外的列并且按未排序的顺序 我想重新安排result数组 使其与中的行顺序相同data 同时在排序时将关联值与该行的其余部分一起放入最后一列 data n