在 numpy 中快速找到对称对

2024-04-25

from itertools import product
import pandas as pd

df = pd.DataFrame.from_records(product(range(10), range(10)))
df = df.sample(90)
df.columns = "c1 c2".split()
df = df.sort_values(df.columns.tolist()).reset_index(drop=True)
#     c1  c2
# 0    0   0
# 1    0   1
# 2    0   2
# 3    0   3
# 4    0   4
# ..  ..  ..
# 85   9   4
# 86   9   5
# 87   9   7
# 88   9   8
# 89   9   9
# 
# [90 rows x 2 columns]

如何快速查找、识别和删除该数据框中所有对称对的最后一个重复项?

对称对的一个示例是“(0, 1)”等于“(1, 0)”。后者应该被删除。

算法一定要快,所以推荐使用numpy。不允许转换为 python 对象。


您可以对值进行排序,然后groupby:

a= np.sort(df.to_numpy(), axis=1)
df.groupby([a[:,0], a[:,1]], as_index=False, sort=False).first()

Option 2: 如果你有很多对c1, c2, groupby可能会很慢。在这种情况下,我们可以分配新值并按以下条件过滤drop_duplicates:

a= np.sort(df.to_numpy(), axis=1) 

(df.assign(one=a[:,0], two=a[:,1])   # one and two can be changed
   .drop_duplicates(['one','two'])   # taken from above
   .reindex(df.columns, axis=1)
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 numpy 中快速找到对称对 的相关文章

  • pyCUDA无法打印结果

    最近 我使用 pip 为我的 python3 4 3 安装 pyCUDA 但我在测试示例代码时发现 https documen tician de pycuda tutorial html getting started https doc
  • 使用 Boto3 超时的 AWS Lambda 函数

    我已经解决了我自己的问题 但无论如何我都会发布它 希望能节省其他人几个小时 我在 AWS 上有一个无服务器项目 使用 Python 将记录插入到 kinesis 队列中 但是 当我使用 boto3 client kinesis 或 put
  • Python,Google Places API - 给定一组纬度/经度查找附近的地点

    我有一个由商店 ID 及其纬度 经度组成的数据框 我想迭代该数据框 并使用 google api 为每个商店 ID 查找附近的关键地点 例如输入 Store ID LAT LON 1 1 222 2 222 2 2 334 4 555 3
  • Scrapy 文件管道不下载文件

    我的任务是构建一个可以下载所有内容的网络爬虫 pdfs 在给定站点中 Spider 在本地计算机和抓取集线器上运行 由于某种原因 当我运行它时 它只下载一些但不是全部的 pdf 通过查看输出中的项目可以看出这一点JSON 我已经设定MEDI
  • 将整数系列转换为交替(双元)二进制系列

    我不知道如何最好地表达这个问题 因为在这里谷歌搜索和搜索总是让我找到更复杂的东西 我很确定这是基本的东西 但对于我的生活来说 我找不到一个好的方法来做到这一点下列 给定一个整数序列 比如说 for x in range 0 36 我想将这些
  • 动态字段取决于 WTForms 的先前字段

    我正在使用 WTForms 制作表格 目前 我有这个 class UploadForm flask wtf Form fichier wtforms fields FileField u Fichier description wtform
  • 为什么需要设置WORKON_HOME环境变量?

    我已经有一段时间没有使用 python 虚拟环境了 但我也安装了虚拟环境包装器 我的问题是 在文档页面中它说要这样做 export WORKON HOME Envs mkdir p WORKON HOME source usr local
  • 列表推导式和 for 循环中的 Lambda 表达式[重复]

    这个问题在这里已经有答案了 我想要一个 lambda 列表 作为一些繁重计算的缓存 并注意到这一点 gt gt gt j for j in lambda i for i in range 10 9 9 9 9 9 9 9 9 9 9 Alt
  • Snakemake:将多个输入用于具有多个子组的一个输出的规则

    我有一个工作管道 用于下载 比对和对公共测序数据执行变体调用 问题是它目前只能在每个样本的基础上工作 i e作为每个单独测序实验的样本 如果我想对一组实验 例如样本的生物和 或技术复制 执行变体调用 则它不起作用 我试图解决它 但我无法让它
  • 哪种方式最适合Python工厂注册?

    这是一个关于这些方法中哪一种被认为是最有效的问题 Pythonic 我不是在寻找个人意见 而是在寻找惯用的观点 我的背景不是Python 所以这会对我有帮助 我正在开发一个可扩展的 Python 3 项目 这个想法类似于工厂模式 只不过它是
  • Python:导入模块一次然后与多个文件共享

    我有如下文件 file1 py file2 py file3 py 假设这三个都使用 lib7 py lib8 py lib9 py 目前 这三个文件中的每一个都有以下行 import lib7 import lib8 import lib
  • Python脚本从字母和两个字母组合生成单词

    我正在编写一个简短的脚本 它允许我使用我设置的参数生成所有可能的字母组合 例如 b a 参数 单词 5 个字母 第三 第五个字母 b a 第一个字母 ph sd nn mm 或 gh 第二 第四个字母 任意元音 aeiouy 和 rc 换句
  • 如何从邻接表高效创建稀疏邻接矩阵?

    我正在与last fm http labrosa ee columbia edu millionsong lastfm数据集来自百万歌曲数据集 http labrosa ee columbia edu millionsong 数据以一组 j
  • AttributeError: 'super' 对象没有属性 '__getattr__' 在 Kivy 中使用带有多个 kv 文件的 BoxLayout 时出错

    我很清楚 这个问题已经被问过好几次了 但尝试以下解决方案后 Python Kivy AttributeError 尝试获取 self ids 时 super 对象没有属性 getattr https stackoverflow com qu
  • 如何将 URL 添加到 Telegram Bot 的 InlineKeyboardButton

    我想制作一个按钮 可以从 Telegram 聊天中在浏览器中打开 URL 外部超链接 目前 我只开发了可点击的操作按钮 update message reply text Subscribe to us on Facebook and Te
  • 数据损坏 C++ 和 Python 之间的管道

    我正在编写一些代码 从 Python 获取二进制数据 将其通过管道传输到 C 对数据进行一些处理 在本例中计算互信息度量 然后将结果通过管道传输回 Python 在测试时 我发现如果我发送的数据是一组尺寸小于 1500 X 1500 的 2
  • 如何创建增量加载网页

    我正在编写一个处理大量数据的页面 它会永远持续到我的结果页面加载 几乎无限 因为返回的数据太大了 因此 我需要实现一个增量加载页面 例如 url 中的页面 http docs python org http docs python org
  • 从给定的项目列表创建子列表

    我首先要说的是以下问题不是为了家庭作业目的即使因为我几个月前就完成了软件工程师的工作 无论如何 今天我正在工作 一位朋友向我询问了这个奇怪的排序问题 我有一个包含 1000 行的列表 每行代表一个数字 我想创建 10 个子列表 每个子列表都
  • 为什么从 openAI 导入 Universe 模块时出现“无效语法”错误

    当我导入时universe来自 openAI 的模块 我收到以下错误 Traceback most recent call last File
  • 如何有效地比较 pandas DataFrame 中的行?

    我有一个 pandas 数据框 其中包含雷击记录以及时间戳和全球位置 格式如下 Index Date Time Lat Lon Good fix 0 1 20160101 00 00 00 9962692 7 1961 60 7604 1

随机推荐

  • 我可以使用什么正则表达式来匹配以点十进制表示法表示的任何有效 IP 地址?

    我可以使用什么正则表达式来匹配以点十进制表示法表示的任何有效 IP 地址 if ip d 1 3 d 1 3 d 1 3 d 1 3 1 lt 255 2 lt 255 3 lt 255 4 lt 255 print valid n els
  • 如何使用 Jade 和 Node.js 迭代 JSON 数组

    所以我有这个 JSON 数组apiData被传递到视图作为data Backend router get function req res var data JSON stringify apiData res render gallery
  • 将 LINQ 序列中的项目发送到返回 void 的方法

    通常 当我处理 LINQ 序列时 我希望将每个项目发送到返回 void 的方法 从而避免 foreach 循环 但是 我还没有找到一种优雅的方法来做到这一点 今天 我写了如下代码 private StreamWriter sw privat
  • SimpleInjector 和 FluentValidationFactory

    我正在尝试自动化视图模型的验证 我知道我可以添加一个属性来指定我的验证 但有一个选项可以设置一个工厂来自动化所有这些 我查看了 这个答案 https stackoverflow com questions 9984144 what is t
  • Nodejs mongodb驱动的同步函数调用

    我有一个处理 mongodb 数据库的开源项目 我正在尝试创建一个查询数据库以检查条目是否存在的函数 问题是当if exists 返回 true 或 false 它会返回 undefined 因为 mongodb 驱动程序函数是异步的 该文
  • 将 pdf 文件转换为 tiff 文件的最佳方法 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • intellij 是否可以像在 Eclipse 中一样组织导入?

    我正在开发一个项目 所有团队成员都使用 Eclipse 而我是唯一的 IDEA 用户 这会因导入重新排列而产生大量噪音 eclipse导入的顺序是 Java Javax Org Com 其他一切按字母顺序排列 是否可以配置 IDEA 来遵循
  • 使用 Tkinter/Python 使用 ImageTk.PhotoImage 调整图像大小

    我正在尝试使用 Tkinter 制作幻灯片 但在调整图像大小时遇到 问题 它们仅显示为默认尺寸 而我想让它们全部统一 我可以使用 Image open 和调整大小来对单个图像执行此操作 但我无法弄清楚如何让它在迭代中工作 我将不胜感激的帮助
  • 为了让 WCF 传递大字符串,在哪里增加 maxStringContentLength ?

    好的 我已经设置并测试了一个不错的小型 WCF 服务 客户端创建一个字符串并将其传递给服务上的方法 然后服务将其保存为文件 与少量的测试数据完美配合 但是当我尝试它应该做的事情时 传递一些序列化的 net 对象 它崩溃了 并出现错误 格式化
  • 在 PHP 中打印货币数字格式

    我的页面中要显示一些价格值 我正在编写一个函数 它接受浮动价格并返回带有货币代码的格式化货币 val 例如 fnPrice 1001 01 应该打印 1 000 01 最简单的答案是number format http www php ne
  • 伊斯坦布尔封面报告对于摩卡测试是错误的(使用 Mongoose)

    我已经尝试在伊斯坦布尔为我的申请进行封面测试 一切似乎都工作正常 但有些方法被标记为未涵盖 并且我确信 由于日志 这些功能已被涵盖 这是我想测试的代码 使用 Mongoose var mongoose require mongoose Sc
  • 使用 PHPExcel 将 Excel 中的单元格按行和列合并在一起

    我需要使用以下命令按行合并 Excel xlsx 中的单元格并再次按列合并PHPExcel http phpexcel codeplex com downloads get 212184 我尝试了以下方法 sheet gt mergeCel
  • 字符串数组上的 VBA“类型不匹配:需要数组或用户定义的类型”

    我有一个全局声明的动态字符串 DMA 数组 Dim DMAs As String 我 ReDim 数组并在 CreateArrayOf 函数中为其赋值 该函数的类型为 String 返回 String 类型的数组 DMAs CreateAr
  • 我如何告诉 matplotlib 我已经完成了绘图?

    下面的代码绘制了两个后记 http en wikipedia org wiki PostScript ps 文件 但第二个文件包含这两行 import matplotlib import matplotlib pyplot as plt i
  • Android:更新后重新启动应用程序 - ACTION_PACKAGE_REPLACED

    我的应用程序不在 Play 商店中 请在网络上验证是否有新版本并下载并启动它 安装后我想重新启动应用程序并使用BroadcastRecevier with ACTION PACKAGE REPLACED 这是代码 播送 public voi
  • 分支输出 Keras

    我的模型分为 2 个输出层 如下所示 输入 gt L1 gt L2 gt L3 gt 输出1 输入 gt L1 gt L2 gt L3 gt 输出2 我这样使用它是因为我想要out1 and out2有2个不同的激活函数 因此 我创建了一个
  • D 中的特征可以用于类型类吗?

    我是 D 新手 我正在寻找一种使用类似 Haskell 的类型类进行编程的好方法 例如D 中的函子 幺半群等 Tango 或 Phobos 中是否实现了类似的功能 我听说过可以对某些属性进行编译时类型检查的特征 它们可以用于类型类吗 我尝试
  • 如何使用 git format-patch 将提交压缩到一个补丁中?

    我在一个分支上有 8 个提交 我想通过电子邮件发送给一些尚未了解 git 的人 到目前为止 我所做的一切要么给我 8 个补丁文件 要么开始为分支历史记录中的每个提交提供补丁文件 从一开始 我使用 git rebase interactive
  • 浏览器选项卡存储?

    是否有一个浏览器存储只能由创建它的页面使用 我正在制作一个 TamperMonkey 脚本来自动化我的工作 当打开来自特定域的页面时会触发它 然后 它会在所述页面中找到特定链接 同一域 并在同一选项卡中将其打开 如果新打开的页面符合条件 则
  • 在 numpy 中快速找到对称对

    from itertools import product import pandas as pd df pd DataFrame from records product range 10 range 10 df df sample 90