python - numpy 通过矢量化替换 nD 数组中 2D 切片上的 for 循环
问题描述
我正在玩弄时间序列数据,并从原始 X x N ndarray(2 X 特征,100 N 帧作为虚拟起点)我使用 np.lib.stride_tricks.as_strided 创建(N-2)个连续的形状窗口(2,3) 即
newShape = [98,2,3]
newStride = [8,800,8]
windowView = np.lib.stride_tricks.as_strided(x = data,shape = newShape, strides = newStride)
我正在寻找的是一种在所有窗口上应用函数的方法,例如在每个窗口内的特征/s 上计算直方图/2d。我知道 np.apply_over_axes 和 np.apply_along_axis 都不会起作用,因为函子在轴上不是可交换的(例如 sum)。
我读过这篇(Numpy Vectorized Function Over Successive 2d Slices)帖子,其中答案使用列表理解。
但是因为我真的很讨厌 numpy 的循环,而这个问题是 6 年前的问题,numpy 中是否有任何新(或旧)功能可以解决问题?
解决方案
推荐阅读
- python - 将带有时间戳的文件复制到文件夹和子文件夹中,在 Python 中按年/月/日构建
- sql - postgres 从文本中提取 int 数组
- asp.net - 在同步回发之前做一些事情
- javascript - 插入排序代码中变量的范围
- excel - 如何匹配值然后使用 if 函数
- javascript - Angularjs折叠导航栏必须点击两次才能打开
- python-3.x - dicom 文件读取错误:'RuntimeError:生成器引发 StopIteration'
- javascript - 通过 HTTP 请求发送文件
- javascript - 当内容出现在底部时使页脚向上移动
- mysql - 交换mysql中的主键