N我想要一个循环卷积函数,我可以根据需要设置数字。
我在这里和这里查看的所有示例都假设需要完整填充,但这不是我想要的。
\n我想要得到不同值的结果N
Nand 和 两个不同的值数组这是循环卷积的公式。SubN可以看作是求模运算。
\n\n\n
当数组a根据 的不同情况进行相应堆积时,这个答案N是一个合适的解决方案。
当我有时间时,我会发布完整的答案,同时请随意这样做。
\n感谢@Andr\xc3\xa9 在评论中指出这一点!
\n我认为这应该有效:
\ndef conv(x1, x2, N):\n n, m = np.ogrid[:N, :N]\n return (x1[:N] * x2[(n - m) % N]).sum(axis=1)\nRun Code Online (Sandbox Code Playgroud)\n这是问题中发布的公式的直接翻译:
\n\n为了实现这个公式,首先我们计算 x\xe2\x82\x82 使用的索引数组。这是使用代码完成的
\nn, m = np.ogrid[:N, :N]\nindices = (n - m) % N\nRun Code Online (Sandbox Code Playgroud)\n例如,对于N=5,数组indices为:
[[0 4 3 2 1]\n [1 0 4 3 2]\n [2 1 0 4 3]\n [3 2 1 0 4]\n [4 3 2 1 0]]\nRun Code Online (Sandbox Code Playgroud)\n第 i 行第 j 列中的条目是(i-j) % N。然后,\nx2[indices]创建一个由与这些索引相对应的元素组成的数组x2。剩下的就是将该数组的每一行乘以 的第一个N元素x1,并取每行的总和:
(x1[:N] * x2[indices]).sum(axis=1)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
653 次 |
| 最近记录: |