栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在numpy中的二维数组上的矢量化移动窗口

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在numpy中的二维数组上的矢量化移动窗口

如果可以表达功能

f(in[i][j],in[i+1][j],in[i-1][j],in[i][j+1],in[i][j-1],…)

作为一个线性算,你可以使用SciPy的的signal.convolve2d函数来做到这一点。例如,假设您有一个50x50的数组A,并且要计算第二个数组B,其中每个元素

b[ij]
都是
a[i,j],a[(i-1),j], a[i,(j-1)], a[(i-1),(j-1)]
数组A的平均值。您可以这样做:

A = # your first arrayB = numpy.ones((2,2))/4C = scipy.signal.convolve2d(A,B, 'valid')

当执行卷积时,数组B在A上“滑动”,将相应的元素相乘并求和。由于边界效应,在使用结果数组C时必须小心。这里,C的形状为49x49,这是因为中的

'valid'
参数
convolve2d
要丢弃第一行和第一列,因为它们包含边界效应。如果您希望有一个50x50的数组而不丢弃,则可以将该参数交换为
'same'

编辑 :也许如果您能告诉我更多有关您需要的功能的信息,我可以帮助您更具体地将其转换为用于进行2D卷积的数组。

希望有帮助!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/645045.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号