Python(NumPy)中相似度矩阵的高效计算

2023-12-31

Let X be a Bxn numpy矩阵,即

import numpy as np
B = 10
n = 2
X = np.random.random((B, n))

现在,我对计算所谓的内核(甚至相似度)矩阵感兴趣K,其形状为BxB,及其{i,j}-th 元素给出如下:

K(i,j) = fun(x_i, x_j)

where x_t表示t矩阵第 - 行X and fun是某个函数x_i, x_j。例如,这个函数可以是所谓的 RBF 函数,即

K(i,j) = exp(-|x_i - x_j|^2)。

为此,一个简单的方法如下:

K = np.zeros((B, B))
for i in range(X.shape[0]):
    x_i = X[i, :]
    for j in range(X.shape[0]):
        x_j = X[j, :]
        K[i, j] = np.exp(-np.linalg.norm(x_i - x_j, 2) ** 2)

我想要的是以向量化的方式进行上述操作,以提高效率。你能帮忙吗?


如果你利用 numpy 的力量,这当然是可能的广播 https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html.

您只需以矢量化的方式编写内部距离范数计算:

X1 = X[:, np.newaxis, :]
X2 = X[np.newaxis, :, :]
K = np.exp(-np.sum((X1 - X2)**2, axis=-1))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python(NumPy)中相似度矩阵的高效计算 的相关文章

随机推荐

  • std::unique_ptr 如何没有大小开销?

    如果空类的大小不能为 0 那么 std tuple 有何魔力 使得 unique ptr 的 sizeof 在 64 位机器中返回 8 在 unique ptr 中 成员定义为 typedef std tuple
  • 实体框架:在没有导航属性的情况下映射外键?

    动机 我的 EF4 1 DbContext 以错误的顺序保存实体 原因 我的模型缺乏导航属性 我想如何解决它 我想在 DbContext 中设置外键关系 问题是我的实体对象没有导航属性 我使用它来填充 Web 服务 然后将 DTO 对象触发
  • tweepy.errors.Forbidden:403 Forbidden - 使用 Tweepy 的 Twitter API 身份验证问题

    我正在遇到 tweepy errors Forbidden 403 Forbidden When authenticating requests to the Twitter API v2 endpoints you must use ke
  • df.duplicated() 误报?

    我有一个数据框 包含 2 865 044 个条目 具有 3 级多重索引 MultiIndex levels names year country productcode 我正在尝试重塑数据框以生成宽数据框 但出现错误 ReshapeErro
  • Xamarin iOS - 以编程方式加载故事板参考

    我有 2 个故事板 Activities storyboard and Contacts storyboard On Contacts storyboard我有一个视图控制器 ContactDetails On Activities sto
  • CSS 转换未触发

    我正在创建一个 DOM 元素 一个 div 将其添加到 DOM 然后在 javascript 中快速更改其宽度 理论上 这应该会触发 CSS3 转换 但结果是直接从 A 到 B 而没有中间的转换 如果我通过单独的测试单击事件更改宽度 一切都
  • 显示任意大小的位图而不会耗尽内存

    如何在不出现 OOMing 或缩小图像尺寸的情况下显示任意大小的图像 我不想因为缩放和拖动图片而缩小尺寸 如果无法显示任意大小的图像 如何确定要显示的图像的最大可能大小 而不导致 ROOM 位图数据分配在 Native 堆中 而不是 VM
  • react-native-image-picker launchCamera 在 android 中不起作用

    我在用着 react native image picker 3 0 1 在本机反应中捕获图像 但我在 android 9 中打开相机时出错 我收到错误 errorCode others errorMessage This library
  • SQL合并语句

    我正在尝试使用 SQL Server 2008 中新的 MERGE 语句 该语句将从临时表中获取记录 并在其他表中更新相同的记录 该语句如下 create table TempTable ProcPOAmdDel ProcessAmendm
  • Ionic:管理多个 iOS 版本

    我有一个离子应用程序 用于为不同组织构建同一应用程序的多个版本 gulp 脚本为我交换了所有的 asset config xml 这对于 Android 来说效果很好 因为我在签名时将 apk 输出到单独的文件夹中 但我不确定如何在 iOS
  • 为什么枚举常量必须在枚举类型中的任何其他变量和方法声明之前声明?

    如果我在声明枚举常量之前或没有以这种方式声明变量 enum MyEnum int i 90 它显示以下编译错误 MyEnum java 3
  • Android向项目添加外部库

    我有一个项目 我想添加外部库 并将它们与应用程序打包在一起 但我不确定它是否发生 我在这个链接上读到 https developer android com guide appendix faq commontasks html https
  • NSPopUpButton、NSComboBox 类似菜单

    我正在尝试创建一个带有下拉菜单的菜单 每个单元格都有自定义背景 首先 我尝试改编 NSPopUpButton 但我找不到更改单元格背景图像的方法 使用 setImage 会将文本滑动到背景的右侧 接下来我停在 NSComboBox 但我找不
  • 如何将 rune 转换为 unicode-style-string,如 Golang 中的 `\u554a`?

    如果你跑fmt Println u554a 显示 啊 但是如何获取 unicode style string u554a来自符文 啊 package main import fmt import strconv func main quot
  • “MKS 源完整性”有责备/注释吗?

    我正在通过 MKS Source Integrity 专有的 VCS MKS Integrity 的前身 访问 Windows 上控制的一些源代码 如何找出源代码的特定行最后更改的版本 根据 VCS 该功能被称为 责备 或 注释 更新 20
  • 将列值从 VARCHAR(n) 转换为 DECIMAL 时出现问题

    我有一个 SQL Server 2000 数据库 其中有一列类型为 VARCHAR 255 所有数据要么为 NULL 要么为最多两点精度的数字数据 例如 11 85 我尝试运行以下 T SQL 查询 但收到错误 将数据类型 varchar
  • 机器人在网格中移动

    机器人位于 4x4 网格的左上角 机器人可以上下左右移动 但不能两次访问同一地点 机器人正在尝试到达网格的右下角 它可以到达网格右下角的方法有多少种 现在我知道 如果机器人只能向下或向右移动 那么答案将是 8C4 因为它必须以任何顺序向右移
  • bootstrap-vue 改变 的位置

    默认情况下
  • 将 xml 转换为键值对表示法

    I use xmlstarlet el v显示 xml 文件的结构 包括所有属性和值 我想将其输出转换为某种键值对 即每个属性及其值位于单独的行上 包括 XPath 每行必须是唯一的
  • Python(NumPy)中相似度矩阵的高效计算

    Let X be a Bxn numpy矩阵 即 import numpy as np B 10 n 2 X np random random B n 现在 我对计算所谓的内核 甚至相似度 矩阵感兴趣K 其形状为BxB 及其 i j th