多维数组快速排序

2023-12-29

我需要根据第一个子数组中的值尽快对多维数组进行排序(该行被应用了数百万次)。

以下是我原来的路线,以及我改进其性能的尝试,但没有成功。据我所知,我的numpy方法仅对第一个子数组进行正确排序,而不对其余子数组进行正确排序。

我做错了什么以及如何提高排序的性能?

import numpy as np

# Generate some random data.
# I receive the actual data as a list, hence the .tolist()
aa = np.random.rand(10, 2000).tolist()

# This is the original line I need to process faster.
b1 = zip(*sorted(zip(*aa), key=lambda x: x[0]))

# This is my attempt at improving the above line's performance
b2 = np.sort(np.asarray(aa).T, axis=0).T

# Check if all sub-arrays are equal
for a, b in zip(*[b1, b2]):
    print(np.array_equal(a, b))

说到这还是个新手lambdas,但是从我从你的代码中了解到的一点点来看 - 它似乎在你的lambda方法,您正在使用x[0]获取排序键,然后使用它们从每个元素中提取值aa。用 NumPy 术语来说,这意味着获取数组版本中第一行的排序索引,然后索引到每一行(因为aa变成数组的每一行a)。这基本上就是列索引。还有,看来sorted保持相同元素的顺序。所以,我们需要使用argsort(kind='mergesort').

因此,我们可以简单地做 -

a[:, a[0].argsort(kind='mergesort')] # a = np.array(aa) 

在您的 NumPy 代码中,您没有执行任何此类操作,因此没有给出正确的结果。

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

多维数组快速排序 的相关文章

  • 在 Celery 任务中调用 Google Cloud API 永远不会返回

    我正在尝试拨打外部电话Google Cloud Natural Language API从一个内Celery任务 使用google cloud python包裹 问题是对 API 的调用永远不会返回 挂起 celery task def g
  • VSCode Settings.json 丢失

    我正在遵循教程 并尝试将 vscode 指向我为 Scrapy 设置的虚拟工作区 但是当我在 VSCode 中打开设置时 工作区设置 选项卡不在 用户设置 选项卡旁边 我还尝试通过以下方式手动转到文件 APPDATA Code User s
  • 为什么 web2py 在启动时崩溃?

    我正在尝试让 web2py 在 Ubuntu 机器上运行 所有文档似乎都表明要在 nix 系统上运行它 您需要下载源代码并执行以下操作 蟒蛇 web2py py 我抓住了source http www web2py com examples
  • PyQt 使用 ctrl+Enter 触发按钮

    我正在尝试在我的应用程序中触发 确定 按钮 我当前尝试的代码是这样的 self okPushButton setShortcut ctrl Enter 然而 它不起作用 这是有道理的 我尝试查找一些按键序列here http ftp ics
  • 打印数字时添加千位分隔符[重复]

    这个问题在这里已经有答案了 我真的不知道这个问题的 名称 所以它可能是一个不正确的标题 但问题很简单 如果我有一个数字 例如 number 23543 second 68471243 我想要它使print 像这样 23 54368 471
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • 为什么这两种不同的构造数组的方式会产生不同的行为?

    当我以两种不同的方式构造一个 2 元素数组时 例如a and b 当我将一个元素添加到内部数组之一时 我得到两个不同的结果 这也会发生在append 根据构建每个之后的输出 我希望它们完全相同 julia gt a 2 element Ar
  • 为什么一旦我离开内置的运行服务器,Django 就无法找到我的管理媒体文件?

    当我使用内置的简单服务器时 一切正常 管理界面很漂亮 python manage py runserver 但是 当我尝试使用 wsgi 服务器为我的应用程序提供服务时django core handlers wsgi WSGIHandle
  • 无法导入 langchain.agents.load_tools

    我正在尝试使用 LangChain Agents 但无法导入 load tools 版本 langchain 0 0 27 我尝试过这些 from langchain agents import initialize agent from
  • Pandas 组合不同索引的数据帧

    我有两个数据框df 1 and df 2具有不同的索引和列 但是 有一些索引和列重叠 我创建了一个数据框df索引和列的并集 因此不存在重复的索引或列 我想填写数据框df通过以下方式 for x in df index for y in df
  • Python - 如何确定解析的 XML 元素的层次结构级别?

    我正在尝试使用 Python 解析 XML 文件中具有特定标记的元素并生成输出 excel 文档 该文档将包含元素并保留其层次结构 我的问题是我无法弄清楚每个元素 解析器在其上迭代 的嵌套深度 XML 示例摘录 3 个元素 它们可以任意嵌套
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • 在 Google App Engine 中,如何避免创建具有相同属性的重复实体?

    我正在尝试添加一个事务 以避免创建具有相同属性的两个实体 在我的应用程序中 每次看到新的 Google 用户登录时 我都会创建一个新的播放器 当新的 Google 用户在几毫秒内进行多个 json 调用时 我当前的实现偶尔会创建重复的播放器
  • 如何使用 AWS Lambda Python 读取 AWS S3 存储的 Word 文档(.doc 和 .docx)文件内容?

    我的场景是 我尝试使用 python 实现从 Aws Lambda 读取 AWS 存储的 S3 word 文档 doc 和 docx 文件内容 下面的代码是我使用的 我的问题是我可以获取文件名 但无法读取内容 def lambda hand
  • Repa 数组上的并行 mapM

    在我最近的work https github com bgamari mixture model with Gibbs sampling 我一直在充分利用RVar http hackage haskell org packages arch
  • 如何使用 PrimaryKeyRelatedField 更新多对多关系上的类别

    Django Rest 框架有一个主键相关字段 http www django rest framework org api guide relations primarykeyrelatedfield其中列出了我的 IDmany to m
  • python 对浮点数进行不正确的舍入

    gt gt gt a 0 3135 gt gt gt print 3f a 0 314 gt gt gt a 0 3125 gt gt gt print 3f a 0 312 gt gt gt 我期待 0 313 而不是 0 312 有没有
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size

随机推荐

  • 从参数化测试访问夹具(例如,capsys)

    我在参数化测试中访问固定装置 在本例中为 capsys 时遇到问题 目前我正在使用一个虚拟夹具来完成这项工作 import pytest pytest fixture def params request from collections
  • 如何在 Swift 中从文件(而不是整个文件)读取数据块

    假设我有一个 8 字节长的文件 仅包含 ASCII 字符 brownfox 我不想加载 2 个字节的块 而不是加载整个文件并处理 if UInt8 并对 2 字节大小的块进行操作 因此操作如下 load br从文件 和not整个文件 对数据
  • 云代码函数运行两次

    我写了一个运行良好的云函数 有时 同一用户会多次执行此函数 我确保客户端 Android 应用程序只请求一个请求 经过一些调试后 我注意到如果连接不良就会出现此问题 我可能是正确的 也可能不正确 如何克服这样的问题 正如评论中所述 我也不相
  • 如何使用 php 在数据库中插入和检索图像

    我正在尝试上传会员个人资料的图像并使用 php 将其存储在数据库中 然后检索它 但它对我不起作用 这就是我尝试插入图像的方法
  • 通过删除 numpy 数组来释放内存

    我编写了一个带有 GUI 的疲劳分析程序 该程序获取有限元模型每个元素的单位载荷的应变信息 使用 np genfromtxt loadcasefilename txt 读取载荷工况 然后进行一些疲劳分析并将每个元素的结果保存在另一个数组中
  • 多个 CSS @media 条件似乎不起作用

    我正在尝试修改 CSS 中的几个类以适应不同的屏幕分辨率 我的目标是 默认应用的 CSS 宽度为 1200 嵌入在 CSS 中的媒体查询 用于 601 到 601 之间的分辨率 1199 px 这不起作用 嵌入在 CSS 中的媒体查询 分辨
  • django 的递归查询集

    我有这个模型引用自身以允许构建一棵树 class PartCategory models Model parent models ForeignKey PartCategory on delete models DO NOTHING nul
  • 如何合并同一列中的单元格,应用行跨度?

    在我的报告的 jrxml 设计中 我的详细信息部分有一列为特定组打印相同的内容 例如 如果我有一个国家列美国 下一列包含其州 每个条目都会重复 美国国家 地区 所以我需要合并具有美国价值的国家 地区单元格 我需要合并列中具有相同值的所有单元
  • 为什么使用 from __future__ import print_function 会破坏 Python2 风格的打印? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我是Python编程新手 我试图用分隔符和结尾打印出来 但它仍然给我一个语法错误 我正在使用Python 2 7 这是我的代码 f
  • 使用按键绑定进行 JLabel 移动

    我在 swing 中制作了一个简短的脚本 人们不断告诉我 我需要使用按键绑定来让 Jlabel 移动 但我不知道该怎么做 任何人都知道如何以不使用按键侦听器的方式实现按键绑定 或者如果我添加按钮 这将是一个问题 import java aw
  • 网格调用时出错

    在尝试使用生成任何图时ggplot2 给出以下错误 Error in grid Call C textBounds as graphicsAnnot x label x x x y X11 font adobe helvetica s s
  • Flask - 将对象直接存储在会话中[重复]

    这个问题在这里已经有答案了 我想知道是否可以直接在 Flask 会话中存储对象 而不需要重写序列化器 为了使其正常工作 我需要在班级中实现任何功能吗 示例代码如下 这就是我想要的样子 然而 当你尝试执行它时 它会抛出一个错误TypeErro
  • Xen、QEMU 和 KVM 之间有什么区别?

    我知道Xen使用QEMU 而KVM是QEMU的一个分支 那么 KVM 包括 Xen 添加到 QEMU 中吗 是什么名字 Thanks QEMU 是一个功能强大的模拟器 这意味着它可以模拟多种处理器类型 Xen 使用 QEMUHVM http
  • Rails:application_helper.rb 中定义的方法无法被categories_controller.rb 识别

    更多新手问题 据我了解 如果我在应用程序帮助程序中定义一个方法 则整个应用程序代码都可以使用该方法 在我的应用程序助手中 我有 def primary user is admin if current user user login rol
  • 片段替换后,使用 RxJava2 + RxBinding 的 RecyclerView 项目单击不起作用

    我在 Fragment 中有一个 RecyclerView 项目点击是使用 RxJava2 处理的 如中所述这个答案 https stackoverflow com a 39962415 2341815 它在非片段中运行良好 private
  • 生成 3 到 6 之间的随机 int 值

    Microsoft SQL Server 是否可以生成从 Min 到 Max 的随机 int 值 3 9 示例 15 99 等 我知道 我可以从0到Max生成 但是如何增加Min边框呢 该查询生成从 1 到 6 的随机值 需要将其从 3 更
  • 如何对带有连接的 SQL 查询结果应用分页?

    我有一个连接 3 个表的 SQL 查询 其中一个只是连接另外两个表的多对多 我使用 Spring JDBC ResultSetExtractor 将 ResultSet 转换为我的对象 大致如下所示 class Customer priva
  • 如何附加到字符串中的所有网址?

    我应该如何附加到即将作为电子邮件发送的 html 字符串中所有 url 的末尾 我想像这样添加谷歌分析活动跟踪 utm source email utm medium email utm campaign product notify 99
  • elasticsearch中的源过滤、存储字段和文档值之间有什么区别?

    我已经阅读了文档源过滤 https www elastic co guide en elasticsearch reference 6 4 search request source filtering html 存储字段 https ww
  • 多维数组快速排序

    我需要根据第一个子数组中的值尽快对多维数组进行排序 该行被应用了数百万次 以下是我原来的路线 以及我改进其性能的尝试 但没有成功 据我所知 我的numpy方法仅对第一个子数组进行正确排序 而不对其余子数组进行正确排序 我做错了什么以及如何提