用于查找对的压缩矩阵函数

2023-11-23

对于一组观察结果:

[a1,a2,a3,a4,a5]

他们的成对距离

d=[[0,a12,a13,a14,a15]
   [a21,0,a23,a24,a25]
   [a31,a32,0,a34,a35]
   [a41,a42,a43,0,a45]
   [a51,a52,a53,a54,0]]

以压缩矩阵形式给出(上面的上三角,计算公式为scipy.spatial.distance.pdist ):

c=[a12,a13,a14,a15,a23,a24,a25,a34,a35,a45]

问题是,鉴于我在压缩矩阵中有索引,是否有一个函数(最好在 python 中)f快速给出哪两个观察值用于计算它们?

f(c,0)=(1,2)
f(c,5)=(2,4)
f(c,9)=(4,5)
...

我尝试过一些解决方案,但没有一个值得一提:(


压缩矩阵的索引公式为

index = d * (d - 1) / 2 - (d - i) * (d - i - 1) / 2 + j - i - 1

Where i是行索引,j是列索引,并且d是原始 (d X d) 上三角矩阵的行长度。

考虑当索引引用原始矩阵中某些行的最左边的非零条目时的情况。对于所有最左边的索引,

j == i + 1

so

index = d * (d - 1) / 2 - (d - i) * (d - i - 1) / 2 + i + 1 - i - 1
index = d * (d - 1) / 2 - (d - i) * (d - i - 1) / 2

通过一些代数,我们可以将其重写为

i ** 2 + (1 - (2 * d)) * i + 2 * index == 0

然后我们可以使用二次公式来求方程的根,我们只需 关心积极的根源。

如果这个索引确实对应于最左边的非零单元格,那么我们得到一个正整数作为解 对应于行号。然后,找到列号只是算术。

j = index - d * (d - 1) / 2 + (d - i) * (d - i - 1)/ 2 + i + 1

如果索引不对应于最左边的非零单元格,那么我们将找不到整数根,但我们可以将正根的下限作为行号。

def row_col_from_condensed_index(d,index):
    b = 1 - (2 * d) 
    i = (-b - math.sqrt(b ** 2 - 8 * index)) // 2
    j = index + i * (b + i + 2) // 2 + 1
    return (i,j)  

如果你不知道d,你可以从压缩矩阵的长度算出。

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

用于查找对的压缩矩阵函数 的相关文章

  • 重写修改后的 goto 语义的算法

    我有一大堆使用旧的自行设计的脚本语言编写的遗留代码 我们将它们编译 翻译成 javascript 该语言有条件跳转 跳转到标签 与普通 goto 语句的区别在于 不可能向后跳转 该语言中没有嵌套的 if 语句或循环 由于 javascrip
  • 我应该对算法使用递归还是记忆化?

    如果我可以选择使用递归或记忆来解决问题 我应该使用哪一个 换句话说 如果它们都是可行的解决方案 因为它们提供了正确的输出并且可以在我正在使用的代码中合理地表达 那么我什么时候会使用其中一个而不是另一个 它们并不相互排斥 您可以同时使用它们
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • 如何使用包含代码的“asyncio.sleep()”进行单元测试?

    我在编写 asyncio sleep 包含的单元测试时遇到问题 我要等待实际的睡眠时间吗 I used freezegun到嘲笑时间 当我尝试使用普通可调用对象运行测试时 这个库非常有用 但我找不到运行包含 asyncio sleep 的测
  • keras加载模型错误尝试将包含17层的权重文件加载到0层的模型中

    我目前正在使用 keras 开发 vgg16 模型 我用我的一些图层微调 vgg 模型 拟合我的模型 训练 后 我保存我的模型model save name h5 可以毫无问题地保存 但是 当我尝试使用以下命令重新加载模型时load mod
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • 在 NumPy 中获取 ndarray 的索引和值

    我有一个 ndarrayA任意维数N 我想创建一个数组B元组 数组或列表 其中第一个N每个元组中的元素是索引 最后一个元素是该索引的值A 例如 A array 1 2 3 4 5 6 Then B 0 0 1 0 1 2 0 2 3 1 0
  • feedparser 在脚本运行期间失败,但无法在交互式 python 控制台中重现

    当我运行 eclipse 或在 iPython 中运行脚本时 它失败了 ascii codec can t decode byte 0xe2 in position 32 ordinal not in range 128 我不知道为什么 但
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • Python - 在窗口最小化或隐藏时使用 pywinauto 控制窗口

    我正在尝试做的事情 我正在尝试使用 pywinauto 在 python 中创建一个脚本 以在后台自动安装 notepad 隐藏或最小化 notepad 只是一个示例 因为我将编辑它以与其他软件一起使用 Problem 问题是我想在安装程序
  • 如何计算 3D Morton 数(交织 3 个整数的位)

    我正在寻找一种快速计算 3D Morton 数的方法 这个网站 http www graphics stanford edu seander bithacks html InterleaveBMN有一个基于幻数的技巧来处理 2D Morto
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • 如何将 PIL 图像转换为 NumPy 数组?

    如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
  • 石和磅的格式正确吗?

    我有一个图表 用于显示重量 以英石和磅 lbs 为单位 该图表由记录中的数据填充 对于权重 数据类型为 Double 记录数据是在运行时编辑的 我需要知道一种正确格式化输入数据的方法 为了更好地理解 首先看一下这些示例值 它们表示为石和磅
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data

随机推荐

  • 关于默认的 C 结构体值,这段代码怎么样?

    我正在尝试创建具有默认值的结构 我不知道如何实现这一点 因为我看到的每个代码都是关于初始化的 我会以自然的方式进行 例如 struct stuff int stuff a 1 int stuff b 2 and so on 环顾四周 我发现
  • 如何从webapp2中的cookies/headers/session决定语言?

    我想利用 webapp2 的新本地化功能 该功能还具有特定于区域设置的时间和货币格式 Django 有一个很好的函数 名为 get language from request 我在完全迁移到 webapp2 之前就使用了该函数 现在我使用
  • 使用结构标识符来表示 POD 类型和 C 结构

    考虑下面的代码 struct Foo template
  • 在 nginx 中使用别名作为相对 url 时的禁止位置

    我正在尝试使用 Nginx 在相对 URL 上设置 roundcube phpldapadmin 例如 example com roundcube example com phpldapadmin 源位于以下文件夹中 var www rou
  • 如何使用 Javascript 在 Safari 中生成按键事件?

    如何以编程方式从 Safari 中运行的 Javascript 代码生成按键事件 看起来 WebKit 使用 DOM level 3 模型从 Javascript 创建键盘事件 而 DOM level 3 键盘事件模型不支持按键事件 我可以
  • 如果我只对一些样本进行转发,什么时候计算图会被释放?

    我有一个用例 我对批次中的每个样本进行转发 并且仅根据样本模型输出的某些条件累积某些样本的损失 这是一个说明性代码 for batch idx data target in enumerate train loader optimizer
  • python Pipes 的同步/异步行为

    在我的应用程序中 我使用多处理模块中的管道在 python 进程之间进行通信 最近 我观察到一种奇怪的行为 具体取决于我通过它们发送的数据大小 根据 python 文档 这些管道基于连接 并且应该以异步方式运行 但有时它们在发送时会卡住 如
  • python 矩阵转置和zip

    如何获得这个矩阵的转置 任何更简单的算法方法来做到这一点 第一个问题 Input a 1 2 3 4 5 6 7 8 9 Expected output a 1 4 7 2 5 8 3 6 9 第二个问题 Zip 给了我下面的输出 当我不知
  • SQLAlchemy 克隆具有关系的表行

    继这个问题之后SQLAlchemy 分离对象的修改 这使得对象的副本很好 但它丢失了原始对象具有的任何多对多关系 有没有办法复制对象以及任何多对多关系 Cheers 我通过遍历对象图并对图中的每个对象执行 expunge make tran
  • 使用 Delphi 进行 JNI 编程

    我可以用Delphi来编程吗Java 本机接口 来自阅读基本 JNI如果您确保使用 C 调用约定 这似乎是可能的 以前有人这样做过吗 我希望得到有关工具的提示 这些工具将有帮助 例如一个将Javah的C头文件转换为Delphi的工具 您可以
  • 文本缩进不适用于锚标记

    http jsfiddle net corinem TtPgy 我在用着 a href Lorem ipsum dolor a css a text indent 9999px 但这行不通 例如 当我使用另一个标签时 p 有用 我也尝试添加
  • ASP.NET Core 模型绑定错误消息本地化

    我正在使用 ASP NET Core 并尝试本地化该应用程序 我设法使用new用于本地化控制器和视图的 asp net core 资源 以及old用于本地化模型验证错误消息的资源 但是 当错误消息未链接到模型字段注释 如 必需 并且模型绑定
  • 从 inotify_event 检索完整路径名

    inotify event 结构如下所示 struct inotify event int wd Watch descriptor uint32 t mask Mask of events uint32 t cookie Unique co
  • 带有 src 和内容的 script-Tag 是什么意思?

    Google 1 按钮的示例 script 标签有一个 src Attributeand内容 这是什么意思以及它是如何工作的 不同的浏览器对此有不同的处理方式 有些仅在以下情况下运行内容 src包含在内 没有错误 有些人在尝试包含以下内容后
  • Python RuntimeWarning:长标量中遇到溢出

    我是编程新手 在我最新的 Python 2 7 项目中 我遇到了以下问题 RuntimeWarning long scalars 中遇到溢出 有人可以详细说明这意味着什么以及我可以做些什么来解决这个问题吗 代码运行完毕 但我不确定忽略警告是
  • UiBinder 小部件中的自定义属性

    我正在为我的应用程序使用 GWT 和 UiBinder 并且我正在尝试这样做
  • orWhereHas - Eloquent 查询上的参数分组 - 如何在 Laravel 中执行此操作?

    在我正在构建的雄辩查询中 我对has使用 Laravel 4 1 的关系whereHas and orWhereHas方法 在示例足球应用程序中 我希望对homeClub and awayClub关系 以便我可以在结果集中选择 homeCl
  • 仅允许在核心图条形图中水平滚动?

    I am using core plot lib to draw bar charts in my app like this 我的问题是我希望仅在水平方向上启用图形移动 以便我可以长时间看到记录 但问题是我只是不想将 y 轴固定在其位置
  • 如何在Android中将菜单设置为工具栏

    我想用ToolBar代替ActionBar 但不要在工具栏中显示菜单 我想要套餐 例如Refresh or Setting按钮ActionBar Toolbar xml代码
  • 用于查找对的压缩矩阵函数

    对于一组观察结果 a1 a2 a3 a4 a5 他们的成对距离 d 0 a12 a13 a14 a15 a21 0 a23 a24 a25 a31 a32 0 a34 a35 a41 a42 a43 0 a45 a51 a52 a53 a5