使用 numpy 进行数组重新分类

2023-12-08

我有一个包含 10 位数字的大型 (50000 x 50000) 64 位整数 NumPy 数组。数组中大约有 250,000 个唯一数字。

我有第二个重新分类表,它将第一个数组中的每个唯一值映射到 1 到 100 之间的整数。我希望将第一个数组中的值重新分类为第二个数组中的相应值。

我尝试了两种方法来做到这一点,虽然它们有效,但速度相当慢。在这两种方法中,我创建了一个相同维度的空白(零)数组。

new_array = np.zeros(old_array.shape)

第一种方法:

for old_value, new_value in lookup_array:
    new_array[old_array == old_value] = new_value

第二种方法,其中lookup_array位于pandas数据框中,标题为“旧”和“新”:

for new_value, old_values in lookup_table.groupby("New"):
    new_array[np.in1d(old_array, old_values)] = new_value

有没有更快的方法来重新分类值


将查找表存储为包含 250,000 个元素的数组,其中每个索引都有映射值。例如,如果您有类似的内容:

lookups = [(old_value_1, new_value_1), (old_value_2, new_value_2), ...]

然后你可以这样做:

idx, val = np.asarray(lookups).T
lookup_array = np.zeros(idx.max() + 1)
lookup_array[idx] = val

当你得到它时,你可以简单地得到转换后的数组:

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

使用 numpy 进行数组重新分类 的相关文章

  • 如何使用Python将WebP图像转换为Gif?

    我已经尝试过这个 from PIL import Image im Image open this webp im save that gif gif save all True 这给了我这个错误 类型错误 不支持的操作数类型 tuple
  • 如何在 PHP 数组中的另一个已知(通过键或指针)元素之后有效地插入元素?

    给定一个数组 a array abc 123 k1 gt v1 k2 gt v2 78 tt k3 gt v3 当其内部指针指向其元素之一时 如何在当前元素之后插入元素 如何在键已知元素 例如 k1 之后插入元素 表现护理 您可以通过使用拆
  • 带图像的简单 GUI [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我试图在简单的 GUI 上显示一些卡
  • 错误:permission_manager_qt.cpp(82) 不支持的权限类型:13

    我正在开发具有内置浏览器功能的 python 代码 PyQt 5 13 import sys from PyQt5 QtCore import from PyQt5 QtGui import from PyQt5 QtWidgets imp
  • 如何 grep 遍历数组,同时过滤掉匹配项?

    有没有一种快速简便的方法来 grep 遍历数组 找到满足某些测试的元素and从原始数组中删除这些 例如我想要 a 1 7 6 3 8 4 b grep filter gt 5 a now b 7 6 8 and a 1 3 4 换句话说 我
  • 如何从 Dockerfile 安装 Python 3.7 和 Pip

    我正在尝试构建基于 Ubuntu 18 04 的自定义 Docker 映像 Ubuntu 预装了 Python 3 6 但我想 1 安装 Python 3 7 2 将其设置为默认 Python 版本 这样就可以使用python代替pytho
  • 如何使用 python urllib 在 HTTP/1.1 中保持活力

    现在我正在这样做 Python3 urllib url someurl headers HOST somehost Connection keep alive Accept Encoding gzip deflate opener urll
  • 具有多个元素的数组的真值是二义性错误吗? Python

    from numpy import from pylab import from math import def TentMap a x if x gt 0 and x lt 0 5 return 2 a x elif x gt 0 5 a
  • 获取列表中倒数第二个元素[重复]

    这个问题在这里已经有答案了 我可以通过以下方式获取列表的倒数第二个元素 gt gt gt lst a b c d e f gt gt gt print lst len lst 2 e 有没有比使用更好的方法print lst len lst
  • Python 中的 @staticmethod 与 @classmethod

    方法和方法有什么区别装饰的 https peps python org pep 0318 with staticmethod http docs python org library functions html staticmethod和
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • 如何列出 python PDB 中的当前行?

    在 perl 调试器中 如果重复列出离开当前行的代码段 可以通过输入命令返回到当前行 点 我无法使用 python PDB 模块找到任何类似的东西 如果我list如果我自己离开当前行并想再次查看它 似乎我必须记住当前正在执行的行号 对我来说
  • 将输入发送到 python 子进程而不等待结果

    我正在尝试为一段代码编写一些基本测试 该代码通常通过 stdin 无休止地接受输入 直到给出特定的退出命令 我想检查程序是否在给出一些输入字符串时崩溃 经过一段时间来考虑处理 但似乎无法弄清楚如何发送数据而不是陷入等待我不知道的输出关心 我
  • 无法截取宽度为 0 的屏幕截图

    我正在尝试截取 Bootstrap 模态内元素的屏幕截图 经过一番努力 我终于想出了这段代码 driver get https enlinea sunedu gob pe driver find element by xpath div c
  • 将一个列表的元素除以另一个列表的元素

    我有两个清单 比如说 a 10 20 30 40 50 60 b 30 70 110 正如你所看到的 列表 b 由一个列表的元素总和组成 其中 window 2 b 0 a 0 a 1 10 20 30 etc 如何获得另一个列表 该列表由
  • Airflow Python 单元测试?

    我想为我们的 DAG 添加一些单元测试 但找不到任何单元测试 有 DAG 单元测试框架吗 有一个端到端的测试框架存在 但我猜它已经死了 https issues apache org jira browse AIRFLOW 79 https
  • 与 array_intersect 相反?

    是否有一个内置函数可以获取数组 1 中不存在于数组 2 中的所有成员 我知道如何以编程方式执行此操作 只是想知道是否有一个内置函数可以执行相同的操作 所以请不要提供代码示例 这听起来像是一份工作array diff http www php
  • Flask WTForms 使用变量自动填充 StringField

    我有一个表格 我想用上一页收到的信息自动填充一些字段 但如果他们想调整它 它需要是可更改的 我正在为我的 SelectField 使用动态创建的列表 但添加 StringField 并不成功 请参阅下面的我的代码 forms py clas
  • 张量流:注册 numpy bfloat16 扩展

    正如我所见 tensorflow 中有 bfloat16 的 numpy 扩展 https github com tensorflow tensorflow blob 24ffe9f729160a095a5cab8f592392018280
  • 如何禁止 celery 中的 pickle 序列化

    Celery 默认使用 pickle 作为任务的序列化方法 如中所述FAQ http ask github com celery faq html isn t using pickle a security concern 这代表一个安全漏

随机推荐

  • 如何在 Vuex 操作完成之前阻止 Vue 生命周期继续进行?

    在我的应用程序中 我想在应用程序的其余部分启动之前初始化 3 个 Vuex 模块 然而 无论我如何尝试 Vue 实例生命周期挂钩中执行初始化的代码都会在 3 个模块完成初始化之前继续运行 我在执行初始化的 Vuex 操作中的代码周围添加了一
  • 重置bxSlider

    我对实现的轮播采取了不同的方向 选择 bxSlider 而不是 jCarousel 这是我正在建立的图片库http rjwcollective com equinox rishi gallery eqgall php 我遇到的问题是当我重置
  • 如何获取 youtube 频道上最新上传的视频的 ID [重复]

    这个问题在这里已经有答案了 如何使用Python获取特定YouTube频道中最新上传视频的ID 您可以请求 JSON 并解析它 以下代码为您提供第一个 最新的 结果并将其存储在first import urllib json author
  • 如何设置 CMake 以便与 Visual Studio 2017RC 和 CUDA 8.0 一起使用?

    Visual Studio 2017 RC 包含更紧密的 CMake 集成 允许用户跳过生成项目 解决方案文件的中间步骤 并将 CMake 有效地用作项目文件本身 Microsoft 有足够的文档用于将这些功能与常规 C 文件一起使用 并且
  • CakePHP 2.0 和移动应用程序身份验证

    我这里快要疯了 我正在用 CakePHP 制作一个网站 它将构成移动应用程序的后端 它不是一个移动网站 它纯粹是为了用于智能手机应用程序而设计的 That being said The application needs the user
  • 如何定位记录类的属性?

    定义记录类时 如何将属性定位到参数 字段或属性 例如 我想使用JsonIgnore但这不会编译 因为它对字段或属性有属性使用限制 record Person string FirstName string LastName JsonIgno
  • 当应用程序有超过 2 个表单时如何关闭整个应用程序而不多次显示消息框

    我正在使用 Windows 窗体开发一个应用程序 该项目包含 3 个表单 一个登录表单是主表单 另外两个表单是登录表单的子表单 我的问题是当想要通过使用关闭整个应用程序时Application Exit 在表单关闭事件中 我的消息框多次显示
  • FileShare.None 是否使线程等待文件流关闭?

    当使用文件流时 并设置FileShare to None 并假设同时访问同一功能的两个用户想要读 写该文件 将要FileShare None让第二个用户请求等待还是第二个用户的请求会抛出异常 two users get to this th
  • 通过 .htaccess 将 URL 重定向到自定义 URL

    我有一个页面 www mypage com 我想将特定 URL 重定向到另一个不存在的 URL 例如 我想要www mypage com about重定向到www mypage com about company php 其中 about
  • Android 应用内购买“您请求的商品无法购买”错误

    我正在研究应用内计费 从最近几天开始 我就陷入了困境 我已经为我的应用程序创建了产品列表 该列表在市场上保存为草稿 但是当我在设备上运行我的应用程序时 它给我一个错误 您请求的项目无法购买 有人可以帮我解决这个问题吗 这可能是因为开发者无法
  • 我可以在运行 MVC3 应用程序的情况下对 .NET 4 进行 bin 部署和 MVC4 吗?

    我在共享托管服务器上有一个 MVC3 应用程序 想通过创建一个新的 MVC4 项目并复制我的内容来升级该项目 当我发布 MVC4 应用程序的文件系统时 是否会发布所需的依赖项 或者服务器上是否有 GAC 等要求 我将使用 NET 4 我已经
  • 当点击 HTTPS 时 file_get_contents() 返回“无法打开流”

    当我在 HTTPS URL 上调用 file get contents 时 它返回 无法打开流 Warning file get contents https google com function file get contents fa
  • 在 Objective C 中使用 ivars 与 Properties 的原因

    我一直无法找到有关此主题的任何信息 并且我所了解的大部分信息完全是偶然的 并且花了几个小时试图找出我的代码无法正常工作的原因 在学习 Objective C 的大多数教程时 我发现变量和属性具有相同的名称 我不明白其重要性 因为似乎该属性完
  • Devise 无法在 Google Chrome 中登录

    我正在使用 Devise gem 在 Ruby on Rails Web 应用程序中进行用户身份验证 该过程非常简单 但是 添加 Nginx 和 ssl 证书后 该应用程序可以在 Mozilla Firefox 中登录 但无法在 Googl
  • jQuery Datepicker - 根据它出现的位置添加类

    我需要在输入元素中添加一个 上方 或 下方 类 具体取决于日期选择器在哪一侧打开 我似乎无法弄清楚如何获取即将创建的日期选择器实例的位置 也许我只是想错了 order main datepicker datepicker showOn bo
  • @font-face 自定义图标字体仅显示 unicodes

    我正在使用 CSS3 的 font face 自定义图标字体 并且在旧版本的 Google Chrome 中 仅显示 unicode 并且不会在我的自定义字体中替换或呈现 该字体显示这些 un icode 的字形 这是我正在使用的 font
  • “使用命名空间 std;”没有任何#include? [复制]

    这个问题在这里已经有答案了 我尝试遵循 它工作没有问题 但在这种情况下 std 没有定义 using namespace std int main 你的代码是非法的 指示using只能提名先前声明的命名空间 即可以通过名称查找找到名称的命名
  • 删除 div 时的 Bootstrap 网格布局

    因此 我正在使用一个仪表板外观 它可能有四个可以打开的 方块 并且角色取决于用户角色 顶行通常保留原样 因此其宽度约为 30 另一行的宽度约为 70 这可以 但是 在仪表板的底行 您可以有两个正方形 当这两个都打开时 我当前的网格设置工作得
  • 过滤对象中的多个值

    我需要按多个值过滤对象 对象示例 items url https id 1693 type ABC currencyCode SEK longName Abc name ABC micCode DEF listingDate 2018 05
  • 使用 numpy 进行数组重新分类

    我有一个包含 10 位数字的大型 50000 x 50000 64 位整数 NumPy 数组 数组中大约有 250 000 个唯一数字 我有第二个重新分类表 它将第一个数组中的每个唯一值映射到 1 到 100 之间的整数 我希望将第一个数组