使用 Scipy 计算两个矩阵的行点积的向量化方法

2023-11-25

我想尽快计算相同维度的两个矩阵的行点积。这就是我这样做的方式:

import numpy as np
a = np.array([[1,2,3], [3,4,5]])
b = np.array([[1,2,3], [1,2,3]])
result = np.array([])
for row1, row2 in a, b:
    result = np.append(result, np.dot(row1, row2))
print result

当然,输出是:

[ 26.  14.]

简单的方法是:

import numpy as np
a=np.array([[1,2,3],[3,4,5]])
b=np.array([[1,2,3],[1,2,3]])
np.sum(a*b, axis=1)

这避免了 python 循环,并且在以下情况下速度更快:

def npsumdot(x, y):
    return np.sum(x*y, axis=1)

def loopdot(x, y):
    result = np.empty((x.shape[0]))
    for i in range(x.shape[0]):
        result[i] = np.dot(x[i], y[i])
    return result

timeit npsumdot(np.random.rand(500000,50),np.random.rand(500000,50))
# 1 loops, best of 3: 861 ms per loop
timeit loopdot(np.random.rand(500000,50),np.random.rand(500000,50))
# 1 loops, best of 3: 1.58 s per loop
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Scipy 计算两个矩阵的行点积的向量化方法 的相关文章

  • Pandas 数据帧到 numpy 数组 [重复]

    这个问题在这里已经有答案了 我对 Python 很陌生 经验也很少 我已经设法通过复制 粘贴和替换我拥有的数据来使一些代码正常工作 但是我一直在寻找如何从数据框中选择数据 但无法理解这些示例并替换我自己的数据 总体目标 如果有人真的可以帮助
  • Numpy 过滤器平滑零区域

    我有一个 0 及更大整数的 2D numpy 数组 其中值代表区域标签 例如 array 9 9 9 0 0 0 0 1 1 1 9 9 9 9 0 7 1 1 1 1 9 9 9 9 0 2 2 1 1 1 9 9 9 8 0 2 2 1
  • 如何使用列表作为pandas数据框中的值?

    我有一个数据框 需要列的子集包含具有多个值的条目 下面是一个带有 运行时 列的数据框 其中包含程序在各种条件下的运行时 df condition a runtimes 1 1 5 2 condition b runtimes 0 5 0 7
  • ARM NEON 矢量化失败

    我想在 ARM cortex a9 上启用 NEON 矢量化 但在编译时得到以下输出 未矢量化 不支持相关 stmt D 14140 82 D 14143 77 D 14141 81 这是我的循环 void my mul float32 t
  • 使用 python 中的公式函数使从 Excel 中提取的值的百分比相等

    import xlrd numpy excel Users Bob Desktop wb1 xlrd open workbook excel assignment3 xlsx sh1 wb1 sheet by index 0 colA co
  • 将 2D 数组追加到 3D 数组,扩展第三维

    我有一个数组A有形状的 480 640 3 和一个数组B有形状 480 640 如何将这两个附加为一个具有形状的数组 480 640 4 I tried np append A B 但它不保留维度 而axis选项导致ValueError a
  • 使用 scipy 的solve_bvp 求解 BVP

    我有一个由 3 个微分方程组成的系统 我相信从代码中可以明显看出 具有 3 个边界条件 我设法在 MATLAB 中用一个循环来解决这个问题 一点一点地改变最初的猜测 而不会在程序即将返回错误时终止程序 然而 关于scipy s solve
  • 使用 Numpy 与 einsum 和 tensordot 进行相同的操作

    假设我有两个 3D 数组A and B形状的 3 4 N and 4 3 N 我可以计算沿第三轴的切片之间的点积 with einsum np eisum ikl kjl gt ijl A B 是否可以执行相同的操作numpy tensor
  • Numpy 重新排列二维数组

    我正在寻找一种快速公式来对 2D numpy 数组进行数值分箱 通过分箱 我的意思是计算子矩阵平均值或累积值 对于前 x numpy arange 16 reshape 4 4 将被分割成 4 个 2x2 的子矩阵 并给出 numpy ar
  • 如何提高大规模数据帧上 lambda 函数的性能

    我有一个df超过数亿行 latitude longitude time VAL 0 39 20000076293945312500 140 80000305175781250000 1972 01 19 13 00 00 1 2000000
  • 在按顺序读取的多个特征文件上训练 Keras 模型以节省内存

    当我尝试读取大量功能文件时 我遇到了内存问题 见下文 我想我应该分割训练文件并按顺序读取它们 做到这一点的最佳方法是什么 x train np load path features x train npy y train np load p
  • 在 numpy 网格网格上评估 sympylambdaify 的结果

    我想在 numpy mggrid 上评估 sympy lambdify 的输出 我尝试了以下方法 import sympy as sp import numpy as np theta v sp symbols theta v coeff
  • 并行 dask for 循环比常规循环慢?

    如果我尝试使用 dask 并行化 for 循环 它最终会比常规版本执行得慢 基本上 我只是按照 dask 教程中的介绍性示例进行操作 但由于某种原因它在我这边失败了 我究竟做错了什么 In 1 import numpy as np from
  • IndexError:索引 10 超出尺寸为 10 的轴 0 的范围

    我正在以数字方式为 x 网格和 x 向量以及时间网格设置网格 但我再次设置了一个数组x 位置 只能在 0 到 20 之间并且t 时间 将从 0 到 1000 以便求解热方程 但每次我想要 例如 我将步数设置为 10 时 都会收到错误 Tra
  • 为什么编译器在这里错过矢量化?

    考虑以下valarray类 include
  • 如何在Python中计算正态分布的百分位数?

    问题陈述 随机变量 X 是 N 25 4 找到 X 的指定百分位 A 第 10 个百分位数 b 第 90 个百分位数 C 第 80 个百分位数 d 第 50 个百分位数 尝试1 My code import numpy as np impo
  • 如何使用 numpy 在二维数组上执行最大/平均池化

    给定一个 2D M x N 矩阵和一个 2D 内核 K x L 我如何返回一个矩阵 该矩阵是使用图像上给定内核进行最大或平均池化的结果 如果可能的话我想使用 numpy 注意 M N K L 可以是偶数也可以是奇数 并且它们不需要彼此完全整
  • 使用 Pillow 和 Numpy 进行图像推导

    I have two images and 我想导出一个只有红色 Hello 的图像 例如 所以我正在运行一个简单的推导python脚本 from PIL import Image import numpy as np root root
  • pandas 时间序列的 interp1d

    我想在 pandas 时间序列中的时间之间进行插值 我想使用 scipy interpolate interp1d 或类似的 这pandas interpolate函数是不可取的 因为它需要插入nan值 然后使用插值替换它们 从而修改数据集
  • 识别左侧由 delta 链接的簇,右侧由不同 delta 链接的簇

    考虑排序后的数组a a np array 0 2 3 4 5 10 11 11 14 19 20 20 如果我指定了左增量和右增量 delta left delta right 1 1 这就是我期望的集群分配方式 a 0 2 3 4 5 1

随机推荐

  • 解析 HTML 表格最快、最简单、最好的方法是什么?

    我正在尝试获取这张桌子http www datamystic com timezone time zones html转换为数组格式 这样我就可以用它做任何我想做的事情 最好是 PHP Python 或 JavaScript 这种问题经常出
  • RxJs 可观察分页

    第一 这是我使用 RxJs 的第一个项目 我想通过使用它我会学到最好的东西 我找到了这个答案 使用 RxJs 将分页请求转换为 Observable 流但评论里却说 您仍然超出了最大调用堆栈 返回大约 430 页 我认为递归可能不是最好的解
  • Shift + 鼠标滚轮水平滚动

    对于水平滚动 使用 Shift 滚轮相当常见 这两者都相当容易捕获 我可以使用 MouseWheel 事件以及由 KeyDown KeyUp 事件设置的标志来跟踪何时按下 Shift 键 但是 如何真正触发水平滚动呢 我知道 WM MOUS
  • GHC 7.7 中引入的自由覆盖条件破坏了 GHC 7.6 中有效的代码

    The idea 我正在写一个DSL 编译为 Haskell 该语言的用户可以定义自己的不可变数据结构和关联函数 我所说的关联函数是指属于数据结构的函数 例如 用户可以编写 用 pythonic 伪代码 data Vector a x y
  • 如何使用 gitpython 对当前提交与上次提交进行 git diff?

    我正在尝试掌握 gitpython 模块 hcommit repo head commit tdiff hcommit diff HEAD 1 but tdiff hcommit diff HEAD HEAD 不起作用 也不 HEAD HE
  • 是否可以为 UITableView 添加边框样式? (不是边框颜色/边框宽度)

    是否可以为 UITableView 添加边框样式 不仅仅是边框颜色和边框宽度 例如凹槽边框样式 嘿 您可以使用以下方式为您的视图添加边框CALayer可以在QuartzCore Framework 以下链接将帮助您了解CALayer详细 C
  • 如何使用 Eclipse 将特定于平台的本机库包含在 .JAR 文件中?

    我刚刚开始学习JNI 我一直在遵循一个简单的示例 并且创建了一个调用本机库中的 Hello World 方法的 Java 应用程序 我想以 Win32 和 Linux x86 为目标 我的库驻留在 DLL 中 当 DLL 添加到 Eclip
  • 如何阻止 Eclipse 在每次捕获的异常时崩溃?

    当我开始调试 java 项目时 Eclipse 不断地破坏第 3 方库中的随机异常 这非常烦人 知道如何阻止这个吗 我尝试单击断点视图上的 图标 我可以看到 挂起捕获的异常 和 挂起未捕获的异常 复选框都没有选中 Eclipse 仍然在异常
  • SCSS 与字符串的算术运算

    selector width 10px width width 2 output 10px but expected 5px 上面的代码是不言自明的 请纠正我 您可以使用calc功能 selector width 10px width ca
  • 为什么不能在字节变量中存储负值?

    我正在转换可以在 Java 中运行但不能在 C 中运行的代码 byte buffer new byte 64 this buffer int this count 0x3F 128 这会生成编译时错误 常量值 128 无法转换为 字节 如何
  • 如何在 MySQL 中创建时间点架构

    I read this有关为数据库构建时间点架构的文章 在我看来 这是一个优雅的解决方案 但这篇文章是在不久前 2007 年 就已经准备好的 我想知道 1 还有其他方法可以解决这个问题吗 2 这种方法和其他方法的优缺点是什么 3 是否有可供
  • Burn 中的RegistrySearch 与 util:RegistrySearch

    我在用Burn构建 WiX 引导程序 我意识到如下所示的RegistrySearch实际上并没有搜索注册表 我用了过程监控器监视注册表访问
  • Haskell:类型推断和函数组合

    这个问题的灵感来自于此answer另一个问题 表明您可以使用定义为的函数从列表中删除每个出现的元素 removeall filter 用铅笔和纸根据以下类型进行计算filter and 该函数的类型为 removeall Eq a gt a
  • 将 Ruby 对象序列化为 JSON 并返回?

    我想将一个对象序列化为 JSON 将其写入文件并读回 现在我希望在 net 中有类似的东西 你有 json net 或类似的东西 然后你会这样做 JsonSerializer Serialize obj 并完成它 您将返回 JSON 字符串
  • asp.net mvc 中的动态子域

    我对 ASP NET 相当陌生 对 IIS 也没什么经验 我想让我的应用程序的每个用户都有自己的子域 但都使用相同的控制器 然后子域将控制显示的内容 Example user1subdomain mydomain com Whatever
  • 为什么这样的递归不会出现堆栈溢出?

    我不明白为什么打电话recSetTimeOut 不会导致堆栈溢出错误 而recPromise does const recSetTimeOut gt console log in recSetTimeOut setTimeout recSe
  • 为什么要升级到 c# 4.0?

    我知道 C 4 0 中有一些不错的新功能 但我无论如何也想不出升级现有项目或切换到新项目的令人信服的理由 我看过一些帖子 人们说如果他们的托管服务不提供 Net 4 他们会寻找另一个提供商 因为 Net 4 是他们的方向的核心
  • malloc和free是如何实现的?

    我想实现我自己的动态内存管理系统 以添加有助于管理 C 内存的新功能 我使用 Windows XP 和 Linux Ubuntu 实现 malloc 和 free 等功能需要什么 我认为我必须使用最低级别的系统调用 对于 Windows 我
  • IIS 7.5 Mercurial 设置忽略 maxAllowedContentLength

    我正在尝试在 IIS 7 5 上设置 Mercurial 我有一个应用程序目录的 web config 该目录忽略了maxAllowedContentLength属性和我只是cannot让IIS接受它 我在全球 本地和各个层面尝试了一千种不
  • 使用 Scipy 计算两个矩阵的行点积的向量化方法

    我想尽快计算相同维度的两个矩阵的行点积 这就是我这样做的方式 import numpy as np a np array 1 2 3 3 4 5 b np array 1 2 3 1 2 3 result np array for row1