【发布时间】:2015-04-24 23:45:17
【问题描述】:
假设我有一个 numpy 数组 a,我想创建一个新数组 b 这样
b[i, j] 是一个函数,比如说:
a[i-1, j-1], a[i-1, j ], a[i-1, j+1],
a[i , j-1], a[i , j ], a[i , j+1],
a[i+1, j-1], a[i+1, j ], a[i+1, j+1]
最快的方法是什么?
由于这是一个可分离的过滤器,有没有办法在多个线程中运行它? (不是进程,因为我必须将数据复制回来)
还是必须编写 C 代码来绕过 GIL?
也欢迎部分解决方案(例如假设函数是线性的)。
【问题讨论】:
-
您的意思是像滚动/移动窗口还是过滤器?此链接中的示例用于对 2D 数组 johnvinyard.com/blog/?p=268 上的 3x3 窗口求和
-
听起来像许多其他 SO 问题,大多数使用术语
sliding windows(或移动)。尽管大多数人专注于迭代窗口,而不是在线程或进程之间拆分任务。
标签: python arrays image-processing numpy gil