理解 NumPy 的卷积

2023-12-29

计算简单移动平均线时,numpy.convolve似乎可以完成这项工作。

问题:使用时是如何计算的np.convolve(values, weights, 'valid')?

当文档提到convolution product is only given for points where the signals overlap completely,这两个信号指的是什么?

如果任何解释可以包括示例和插图,那将非常有用。

window = 10
weights = np.repeat(1.0, window)/window
smas = np.convolve(values, weights, 'valid')

卷积是主要用于信号处理的数学运算符。 Numpy 只是使用此信号处理术语来定义它,因此使用“信号”引用。 numpy 中的数组是一个信号。两个信号的卷积定义为第一个信号的积分,reversed,扫描(“卷积”)第二个信号并在重叠向量的每个位置相乘(与标量积)。第一个信号通常称为kernel,特别是当它是一个二维矩阵时图像处理 http://web.pdx.edu/~jduh/courses/Archive/geog481w07/Students/Ludwig_ImageConvolution.pdf或神经网络,以及reversal成为一个二维镜像 http://juanreyero.com/article/python/python-convolution.html(不转置)。使用它可以更清楚地理解维基百科上的动画 https://en.wikipedia.org/wiki/Convolution.

根据上下文,卷积有多种定义。有些在重叠开始时开始卷积,而另一些则在仅部分重叠时开始卷积。在 numpy 的“有效”模式下,重叠被指定为始终完整。它被称为“有效”,因为结果中给出的每个值都是在没有数据外推的情况下完成的。

例如,如果数组 X 的长度为 2,数组 Y 的长度为 4,则在“有效”模式下 X 到 Y 的卷积将为您提供长度为 3 的数组。

第一步,对于X = [4 3] and Y = [1 1 5 5]:

[3 4]                   (X is reversed from [4 3] to [3 4], see note)
[1 1 5 5]
= 3 * 1 + 4 * 1 = 7

注意:如果X没有反转,该操作将被称为a互相关 https://en.wikipedia.org/wiki/Cross-correlation而不是卷积。

第二步:

  [3 4]
[1 1 5 5]
= 3 * 1 + 4 * 5 = 23

第三步:

    [3 4]
[1 1 5 5]
= 3 * 5 + 4 * 5 = 35

模式“有效”的卷积结果将是[7 23 35]。

如果重叠被指定为单个数据点(如“full”模式下的情况),结果将为您提供一个长度为 5 的数组。第一步是:

[3 4]
  [1 1 5 5]
= 3 * undefined (extrapolated as 0) + 4 * 1 = 4

等等。存在更多的外推模式。

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

理解 NumPy 的卷积 的相关文章

随机推荐

  • 如何获取 Tensorflow seq2seq 嵌入输出

    我正在尝试使用张量流训练序列到序列模型 并一直在查看他们的示例代码 我希望能够访问编码器创建的向量嵌入 因为它们似乎具有一些有趣的属性 然而 我真的不清楚这是怎么回事 在单词的向量表示示例中 他们详细讨论了这些嵌入的用途 但似乎没有提供访问
  • 如何在开发机器上使用ansible模板本地创建文件

    我从 ansible 开始 正在寻找一种方法来使用 ansible 剧本在服务器和本地环境上创建样板项目 我想在本地使用 ansible 模板来创建一些通用文件 但是我如何使用ansible在本地执行某些操作呢 我读了一些 local ac
  • SSRS 报告每个参数值的重复表

    大家对这里的一般性问题感到抱歉 但我一直在互联网上查找 但找不到解决方案 我有一份 SSRS 报告 在运行之前用户必须输入一个参数 Location 在查询中 指定仅返回该位置匹配的结果 IE where Company location
  • 在reactjs中切换下拉菜单

    我的导航栏上有一个简单的下拉菜单的以下代码 https jsfiddle net jL3yyk98 10 https jsfiddle net jL3yyk98 10 索引 html div div 导航菜单 js var NavMenu
  • Polymer:在纸张按钮按“确定”后获取纸张对话框内的纸张输入值

    我需要在按下 确定 纸张按钮后获取纸张对话框内某些纸张输入字段的值 I have
  • 检查时间是否在某一分钟内的最佳方法是什么?

    我想编写一个简单的 python 脚本 它将检查是否是给定小时 分钟之前的 2 分钟 然后每天或在给定时间的给定日期调用我的函数 该脚本将在 cronjob 中每分钟运行一次 所以执行myfunction 的两种情况 每天 10 55201
  • 如何更改 Tkinter 按钮周围框的颜色?

    我尝试了在 Stackoverflow 上找到的一些东西 例如在按钮周围放置一个框架并为其指定颜色 就像所说的那样here https stackoverflow com questions 53101307 how do i change
  • 两个不常见的PHP运算符一起使用来获取图像像素颜色,请解释

    The PHP 图像颜色 http www php net manual en function imagecolorat php函数可用于获取图像像素的 RGB 值 如文档中所示 im imagecreatefrompng php png
  • 在连接中广播左表

    这是我的加入 df df small join df big id leftanti 它似乎我只能广播正确的数据帧 https stackoverflow com questions 62735494 broadcast join in s
  • 如何使用 Zebra P4t 打印机打印带有尖音符(如“é”)的法语字符

    我的问题是关于用尖音符打印法语字符 例如 etc with a 斑马 P4t 打印机 考虑下面的 ZPL 指令 XA FO20 20 CI28 A0 20 20 FD Amiti FS XZ 我已将这些指令放入编码为 UTF 8 的文件中
  • 使用 Enum.Parse() 时出现意外结果

    class Program static void Main string args String value Two Type enumType typeof Numbers Numbers number Numbers Enum Par
  • Apache Spark 消息理解

    请求帮助来理解此消息 INFO spark MapOutputTrackerMaster Size of output statuses for shuffle 2 is 2202921 bytes 2202921在这里是什么意思 我的工作
  • 声明通用变量类型

    我正在尝试在 C 中声明通用变量类型 我不能使用 C 并且我想到了以下选项 Option1 typedef struct void value ElementType e type Data t Option 2 typedef struc
  • 解析 C 中的命令行参数

    我正在尝试编写一个程序 可以在 C 中逐行 逐字或逐字符地比较两个文件 它必须能够读取命令行选项 l w i or 如果选项是 l 它逐行比较文件 如果选项是 w 它逐字比较文件 如果选项是 它会自动假定下一个参数是第一个文件名 如果选项是
  • 使用 Node.js API 的 Keycloak 通过 Docker 失败

    我有一个与 Keycloak 集成的 Node js Rest API 当我在没有 Docker 的情况下在本地运行 API 时 一切正常 但每当我通过 docker 镜像运行 API 时 都会收到错误 403 禁止 我已经确保我的容器可以
  • 如何用Java获取cookies?

    如何使用 Java 从网页获取 cookie 我的意思是只有Java而不是Servlet等 您可以使用java net URLConnection http download oracle com javase 6 docs api jav
  • 模态对话框或 div 覆盖框架集?

    我有一个 html 页面 其中有几个框架 也是嵌套框架集 我想在所有这些框架上显示叠加层以显示模式框 灯箱 那可能吗 我知道我知道框架集不好用 但是我想尝试一下 模式对话框示例 http flowplayer org tools demos
  • 使用 javascript 分割字符串

    我有一个像 a b c e 这样的字符串 注意前面多了一个分号e 我想要将字符串拆分成a b c e 但它会像这样分裂a b c e 我的代码是 var new arr str split 我在这里可以做什么才能得到我想要的结果 Regar
  • 通过 Google Cloud Storage 和负载均衡器提供 React 应用程序服务,将任何 url 映射到索引?

    我正在使用 Google Cloud Storage 和 Loadbalancer 设置 React 应用程序前端 在构建过程中 index html 和 javascript 文件被上传到云存储中 负载均衡器指向后端存储桶 如果我转到 h
  • 理解 NumPy 的卷积

    计算简单移动平均线时 numpy convolve似乎可以完成这项工作 问题 使用时是如何计算的np convolve values weights valid 当文档提到convolution product is only given